Лучший метод тайминга на C?
gettimeofday(), вероятно, сделает performance то, что вы хотите.
Если вы performance используете оборудование timing Intel, вот как считывать performance-tuning показания счетчика команд perfomance ЦП в реальном времени. Он efficiency сообщит вам количество циклов timers процессора, выполненных с performance-tuning момента загрузки процессора. Это, вероятно, самый code-efficiency точный счетчик с наименьшими efficiency накладными расходами, который efficiency вы можете получить для измерения perfomance производительности.
Обратите c внимание, что это количество performance-tuning циклов ЦП. В Linux вы можете timer получить скорость процессора android-performance из / proc / cpuinfo и разделить, чтобы perfomance получить количество секунд. Преобразование slow этого в двойное очень удобно.
Когда c я запускаю это на своем компьютере, я android-performance получаю
11867927879484732 11867927879692217 it took this long to call printf: 207485
Вот Intel developer's guide, который дает tuning массу подробностей.
#include
#include
inline uint64_t rdtsc() {
uint32_t lo, hi;
__asm__ __volatile__ (
"xorl %%eax, %%eax\n"
"cpuid\n"
"rdtsc\n"
: "=a" (lo), "=d" (hi)
:
: "%ebx", "%ecx");
return (uint64_t)hi << 32 | lo;
}
main()
{
unsigned long long x;
unsigned long long y;
x = rdtsc();
printf("%lld\n",x);
y = rdtsc();
printf("%lld\n",y);
printf("it took this long to call printf: %lld\n",y-x);
}
c
performance
timer
timing
Лучший метод тайминга на C?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.