关于c++:性能工具之代码级剖析工具

上次有人提到说下分析工具。所以再来聊聊代码级分析工具。
不管怎么吹,代码级分析工具对性能自身的损耗都是存在的。
并且损耗还不小。即便是在偏底层做,也照样有很大的损耗。20-30%损耗都是失常的。

要找好代码级工具的切入点,一开始就用必定是不理智。只有剖析到了某一个具体的过程或线程,或者曾经有了可疑代码的具体方法,再上代码级分析工具就更有目的性了。

JAVA方向:对JAVA来说,代码级的分析工具有好多。自带的就有不少,像当初SUN JDK中的jvirtualVM就能够实时看CPU和内存在一个办法和对象上的耗费。还有jstack/jmap等工具可辅助。如果不想实时看,做下dump也能够看内存的占用。然而要想看办法调用工夫就比拟吃力一点。不过当初有不少的商业工具,比如说jprofiler,这工具直到现在还是我所见到的在java分析中性能最全面的工具(它是商业的)。

不仅有树结构,还有调用图。

倡议大家尽量找到可代替的适宜的开源工具。

C/C++方向:在这个方向上,其实不止有专门的代码级分析工具,像valgrind, google perftools。也有零碎级的调试工具能够用。各种的trace工具,像perf/systemtap/oprofile之类的也都可用,并且内核级工具损耗要小一些。在solaris上有Dtrace,那本《性能之颠》的书里简直全是Dtrace工具的例子。 并且这些工具还能生成火焰图、热力求之类的。

在其余语言上也有相应的分析工具可用。像PHP有 Xdebug、xhprof;python有cprofile、memoryprofiler、lineprofiler;.net有CLR profiler;Go语言有pprof(这个是移植过去的,google perf中的工具更多)。
不论是什么语言,简直相似的工具都存在的。有了这些工具,再加上零碎级的调试工具,找到代码级性能问题就是分分钟的事。

当然,还是要强调人的思考能力在社会提高中的重要性,千万不要拿着榔头打枣,够不够得着不说,举一会也够累的。适宜的工具最重要。

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

阿里云限时活动-2核2G-5M带宽-40-100G SSD服务器,特惠价86元/年(原价724元/年,限时99元续购三次),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据