LINUX.ORG.RU

Ответ на: комментарий от anonymous

>скомпилировать с ключем -g и посмотреть потом профайлером

Для профайлера ЕМНИП -pg надо, а не -g. -g это для gdb, а вот -pg для gprof'а.

php-coder ★★★★★
()
Ответ на: комментарий от anonymous

спс за оперативность ;) А нельзя ли как-нибудь узнать это внутри программы? Хотелось бы знать зависимость времени выполнения этой функции при разной загрузке системы, каждый раз перекомпилировать лень..

anonymous
()

а что тебе мешает узнать текущее время в начале функции и в конце, а потом отнять от второго первое?

anti_social
()
Ответ на: комментарий от anti_social

> а что тебе мешает узнать текущее время в начале функции и в конце, а потом отнять от второго первое?

мешает то, что текущее время задаётся в секундах, это слишком неточно.

anonymous
()
Ответ на: комментарий от anonymous

#include <stdlib.h>
#include <sys/time.h>
main()
{
     struct timeval tv;
     struct timezone tz;
     struct tm *tm;
     gettimeofday(&tv, &tz);
     tm=localtime(&tv.tv_sec);
     printf(" %d:%02d:%02d %d \n", tm->tm_hour, tm->tm_min,
              m->tm_sec, tv.tv_usec);
     exit(0);
}

anonymous
()
Ответ на: комментарий от anonymous

Если в секундах неточно, то есть clock_gettime() с наносекундами:

struct timespec now;
clock_gettime(CLOCK_REALTIME, &now);
std::printf("%d.%09li\n", now.tv_sec, now.tv_nsec);

undet
()
Ответ на: комментарий от svr4

> rdtsc? (надел каску зная что сейчас полетят какашки со всех сторон)

rdtsc - это мегавещь (по крайней мере, по опыту под оффтопиком). Кроме отличной точности, она ещё сама очень быстрая, т.к. не требует системных вызовов. А при профайлинге коротких кусков кода очень важно не вносить дополнительных задержек.

alexsaa
()
Ответ на: комментарий от anonymous

> только она есть онли на x86.

Это не страшно. Возможностями своего железа пользоваться можно. Это ж только отладка, а не релиз.

А если надо ввести в релиз (что, как я понимаю, выходит за пределы темы треда), то можно и специальную библиотечку заботать из одной-двух функций, которая для известных архитектур использует то, что знает, а иначе делает системный вызов.

alexsaa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.