C/C++程序中的profile

程序设计中的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变量,每次程序执行时进行相关统计(如调用计数).:由于相关冗余较大,尽量减少使用量,只对于关键函数进行相关处理.

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值