PHP код:
stock TestFunction()
{
#define NUMBER_TICKS 2// Тут указывается число теструемых функций. То есть, если ты собираешься тестировать 10 функций одновременно, тут указываешь число 10
#define NUMBER_TESTS 10// Тут указывается сколько раз повторять наш тест.
#define NUMBER_ITERATIONS 1000000// Ну а тут указывается число итераций для основного цикла, который будет крутить циклы с тестируемыми функциями. Если тест длится очень долго, можно указать и меньшее значение. Предыдущий макрос, в котором указывается число повторений теста, создан именно для того, чтоб сделать тест более объективным.
new ticks[NUMBER_TICKS],// Переменные, которые будем использовать в ходе теста.
tmp_ticks,// Дабы тест был максимально объективен, создание всех переменных вынесли за тело теста (циклов)
p, i, j, k;// Таким образом время, которое бы тратилось на создание этих переменных, не учитывается
printf("\n------------------------------------------------------------\nTesting...\nЧисло итераций в основном цикле - %d\nЧисло повторений теста - %d\n\n", NUMBER_ITERATIONS, NUMBER_TESTS);
for(p = 0; p < NUMBER_TESTS; p++)// Первый цикл, который отвечает за повтор всего теста
{
for(k = 0; k < NUMBER_TICKS; k++) ticks[k] = 0;// Этот цикл обнуляет таймера для каждого нового теста
for(i = 0; i < NUMBER_ITERATIONS; ++i)// Ну а этот цикл уже является тем, что отвечает за сам тест
{// Далее выделены блоки, которые являются чем-то вроде отдельного куска теста. Если тестировать надо больше двух функций, просто скопируй любой блок, замени код внутри цикла и измени значение ticks в последней строке на +1 (дабы записывалось в новую ячейку, а не перезаписывало старую)
//===================================
tmp_ticks = GetTickCount();
for(j = 0; j < 100; ++j)
{
//Тут код первой функции
}
ticks[0] += GetTickCount()-tmp_ticks;
//===================================
//===================================
tmp_ticks = GetTickCount();
for(j = 0; j < 100; ++j)
{
//Тут код второй функции
}
ticks[1] += GetTickCount()-tmp_ticks;
//===================================
}
printf("Тест №:%d", p+1);
printf("Первая функция: %d", ticks[0]);// Ну и при логировании значений не забывай прописывать правильные номера ячеек
printf("Вторая функция: %d", ticks[1]);
print("\n");
}
print("\n------------------------------------------------------------\n");
}