#include <stdio.h> int ProfilerStart(const char* fname); void ProfilerStop(); float counfloat(int _i) { float t_f2=3.5; for(int i=1;i<1000000;++i) { float t_f=3753.235; float t_f1=234.34343; t_f2=t_f/t_f1+t_f2; } return t_f2+_i; } int counint(int _i) { int t_f2=1; for(int i=1;i<1000000;++i) { int t_f=3753; int t_f1=234; t_f2=t_f/t_f1+t_f2; } return t_f2+_i; } void TestFun() { int i = 0; ProfilerStart("CPUProfile"); while( i++ < 100){ //printf("Stupid computing return : %d\n",stupidComputing(i, i+1)); //printf("Smart computing return %d\n",smartComputing(i+1, i+2)); float t_fvalue=counfloat(i); int t_nvalue=counint(i); printf("fvalue:%f value:%d\n",t_fvalue,t_nvalue); } printf("end\n"); ProfilerStop(); } void TestFun1() { int i = 0; ProfilerStart("TestFun1"); while( i++ < 100){ float t_fvalue=counfloat(i); int t_nvalue=counint(i); printf("fvalue:%f value:%d\n",t_fvalue,t_nvalue); } printf("end\n"); ProfilerStop(); } void main(){ for(int i=1;i<2;++i) { TestFun(); TestFun1(); printf("ok:%d\n",i); } printf("while end1\n"); sleep(10); }
makefile:
codetest: test.obj
gcc -o codetest test.obj -L/usr/lib -lprofiler
test.obj: test.c
gcc -std=c99 -c -O0 -g -o test.obj test.c