博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++程序中的profile
阅读量:2438 次
发布时间:2019-05-10

本文共 847 字,大约阅读时间需要 2 分钟。

程序设计中的Profile工具(代码)

: 何时profile?

profile代码只是在需要的时候才出现,可以肯定的是发布给最终用户的程序是不应该包含profile代码的,所以采用一个宏FSE_BUILD_PROFILE来标示当前需要profile代码.

#if defined(DEBUG)

#define FSE_BUILD_PROFILE

#elseif defined(RELEASE)

#define FSE_BUILD_PROFILE

#else //RETAIL, final release

#undef FSE_BUILD_PROFILE

#endif

: profile 什么?

profile主要是为测试出程序的性能及瓶颈所在,为最后的optimize提供基础.所以可以发现主要需要提供三个方面的内容: 内存使用量, 时间使用量, 函数调用次数.

对于profile需要监视总体的数据量(如总内存量)和每个渲染桢的相关数据(可能是多个桢的平均值) .

: 接口设计及简单实现思路

() 桢相关profile

  1. Enable( BOOL enable);

  2. BegineFrame();

  3. EndFrame();

() 统计相关profile

1) IncreaceStats();

2) DecreaceStats();

3) ResetStats();

() 函数调用相关profile

1) IncreaceCallCount();

2) IncreaceCallTime();

() 内存监控

通过统计所有的new/mallocdelete/free得到所有的内存分配情况.

() 通过跟踪过程执行前后的时间差就可以得到过程执行的时间性能.

() 在函数执行前后增加特定的static变量,每次程序执行时进行相关统计(如调用计数).:由于相关冗余较大,尽量减少使用量,只对于关键函数进行相关处理.

具体详细代码稍候上传,欢迎指正,提高性能和使用性。

转载地址:http://khwqb.baihongyu.com/

你可能感兴趣的文章
caffe编译报错解决记录
查看>>
LTP(Linux Test Project)学习(七)——LTP提交补丁
查看>>
Linux 4.0亮点特性
查看>>
LTP(Linux Test Project)学习(六)—— 问题分析:chattr命令的限制
查看>>
Linux 4.1亮点特性
查看>>
Linux 4.4亮点特性
查看>>
Linux 4.5 亮点特性
查看>>
Makefile开发工具学习小结
查看>>
学习linux0.11内核代码——引导启动程序bootsect.s(3)
查看>>
学习linux0.11内核代码——引导启动程序setup.s
查看>>
Linux 单用户模式patch解析
查看>>
决策树
查看>>
CGI
查看>>
时间换算
查看>>
csv文件
查看>>
xml空格WhiteSpace处理
查看>>
XML CDATA
查看>>
转义字符
查看>>
TIOBE开发语言排行榜
查看>>
分区和卷
查看>>