#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
本文介绍了一个使用C语言编写的性能分析案例,包括浮点数和整数运算的计算密集型函数,通过ProfilerStart和ProfilerStop函数进行性能监控。代码中包含两个主要的测试函数TestFun和TestFun1,用于对比不同计算方式的性能差异。

361

被折叠的 条评论
为什么被折叠?



