|
|
|
|
@ -120,33 +120,37 @@ static double test_with_pools(int iterations) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int main() { |
|
|
|
|
printf("=== Интенсивный тест пулов памяти ===\n"); |
|
|
|
|
printf("Тестируется производительность с пулами vs без пулов\n\n"); |
|
|
|
|
debug_config_init(); |
|
|
|
|
debug_set_level(DEBUG_LEVEL_TRACE); |
|
|
|
|
debug_set_categories(DEBUG_CATEGORY_ALL); |
|
|
|
|
|
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "=== Интенсивный тест пулов памяти ==="); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Тестируется производительность с пулами vs без пулов"); |
|
|
|
|
|
|
|
|
|
const int iterations = 1000; |
|
|
|
|
|
|
|
|
|
printf("Запуск теста без пулов памяти...\n"); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Запуск теста без пулов памяти..."); |
|
|
|
|
double time_without = test_without_pools(iterations); |
|
|
|
|
printf("Время без пулов: %.3f сек\n", time_without); |
|
|
|
|
printf("Waiter callbacks: %d\n\n", waiter_callback_count); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Время без пулов: %.3f сек", time_without); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Waiter callbacks: %d", waiter_callback_count); |
|
|
|
|
|
|
|
|
|
waiter_callback_count = 0; |
|
|
|
|
|
|
|
|
|
printf("Запуск теста с пулами памяти...\n"); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Запуск теста с пулами памяти..."); |
|
|
|
|
double time_with = test_with_pools(iterations); |
|
|
|
|
printf("Время с пулами: %.3f сек\n", time_with); |
|
|
|
|
printf("Waiter callbacks: %d\n\n", waiter_callback_count); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Время с пулами: %.3f сек", time_with); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Waiter callbacks: %d", waiter_callback_count); |
|
|
|
|
|
|
|
|
|
if (time_with > 0 && time_without > 0) { |
|
|
|
|
double speedup = time_without / time_with; |
|
|
|
|
printf("Результат: пулы памяти дали %.2fx ускорение\n", speedup); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "Результат: пулы памяти дали %.2fx ускорение", speedup); |
|
|
|
|
if (time_with < time_without) { |
|
|
|
|
printf("✅ Пулы памяти эффективны!\n"); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "✅ Пулы памяти эффективны!"); |
|
|
|
|
} else { |
|
|
|
|
printf("⚠️ Пулы памяти не дали преимущества в этом тесте\n"); |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_MEMORY, "⚠️ Пулы памяти не дали преимущества в этом тесте"); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
printf("❌ Ошибка в тесте с пулами\n"); |
|
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_MEMORY, "❌ Ошибка в тесте с пулами"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
|