小编jos*_*130的帖子

用于c ++代码的分析器,非常困

我是剖析新手.我想优化我的代码以满足时序约束.我使用Visual C++ 08 Express,因此必须下载一个分析器,对我来说它非常困.我做了一些搜索,但没有找到关于Sleepy的正确教程,我的问题是:如何正确使用它?我掌握了分析的一般概念,所以我按照%排序来排序以找到我的瓶颈.首先,在这个列表的顶部,我有ZwWaitForSingleObject,RtlEnterCriticalSection,operator new,RtlLeaveCriticalSection,printf,一些迭代器......并且在它们占用60%之后出现了我的第一个函数,第一个位置是Child Calls.有人可以解释一下为什么上面提到的,它们是什么意思,如果我无法访问这个关键的60%,我怎样才能优化我的代码?(对于"源文件":未知......).另外,对于我的函数,我认为每行都有时间,但事实并非如此,例如算术或某些函数没有时间(不嵌套在未使用的"if"子句中).最后一件事:如何发现某条线可以执行超高速,但被称为数千次,是实际的瓶颈?

最后,睡眠好吗?或者我平台的一些免费替代品?

非常感谢!干杯!

        • 更新 - - - - -

我找到了另一个版本的探测器,名为plain Sleepy.它显示了一些片段被调用的次数加上行的数量(我猜它指向关键的片段).所以在我的情况下.. KiFastSystemCallRet需要50%!这意味着它等待一些数据吗?如何改善这个问题,是否有一个可行的方法来跟踪导致这些多次调用的原因并最终删除/更改它?

c++ profiling verysleepy

4
推荐指数
1
解决办法
8891
查看次数

C++ ifdef用于重复行

我有很多printfs我想要评论,并能够以灵活的方式再次取消注释.我在想这样的解决方案:

#define SOMETHING
...

#ifdef SOMETHING
printf(....
#endif
Run Code Online (Sandbox Code Playgroud)

但是一个薄弱的部分是我必须为每个printf做这件事.第一个问题,有人知道更有效的方法吗?如果是这样,请以一些片段为例,因为对于预处理器和宏定义,我是初学者.

第二个问题,我可以对couts做同样的事情,如果没有,那么他们也会有什么解决方案呢?

c++ macros comments c-preprocessor

3
推荐指数
1
解决办法
334
查看次数

标签 统计

c++ ×2

c-preprocessor ×1

comments ×1

macros ×1

profiling ×1

verysleepy ×1