C/C++程序中的profile http://blog.csdn.net/cnjet/article/details/2617403

 

C/C++程序中的profile

标签: build工具测试
  1013人阅读  评论(0)  收藏  举报
  分类:
 
 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值