gprofを使ってプログラムのspeed計測を行う
#include <stdio.h> #include <string.h> #define COUNT (10*1024) char Buffer[5*COUNT+1]; char *Data="hello"; int slowFunc() { int i; for (i = 0; i < COUNT; i++) { strcat(Buffer, Data); } return (0); } int fastFunc() { int i; char *ptr; for (i = 0, ptr = Buffer; i < COUNT; i++) { strncpy(ptr, Data, 5); ptr+=5; } *ptr = '\0'; return (0); } int main() { strcpy(Buffer, ""); slowFunc(); strcpy(Buffer, ""); fastFunc(); return (0); }
$ sudo apt-get install libc6-prof $ gcc -o speed speed.c -g -pg -lc_p $ ./speed Floating point exception (core dumped) # でなぜか落ちる。。原因究明中