第二章 性能瓶颈的分析和定位(11)

2022-07-27  本文已影响0人  耕田者

程序剖析工具

       在Windows平台QtCreator没有支持或集成CPU性能剖析器。因此,我们只能退而求其次,单独启动一个外部的剖析器。Very Sleepy(http://www.codersnotes.com/sleepy)是一个简单而流行的开源剖析器。诚然,它的界面是简陋的,但对于大多数非图形应用程序,它也应该够用了。下面的截图展示了对一个Qt演示程序的CPU剖析结果:

Fig. Very Sleepy剖析器对Qt程序的CPU性能剖析

        另一个可用的开源剖析器是MD的CodeXL剖析器。它的界面比Very Sleepy丰富多了,事实上它远不止一个CPU剖析器的功能。它还支持GPU调试、帧分析、GPU剖析、shader分析以及功耗分析。在下面的截图中展示了CodeXL界面上显示的一个Qt演示程序的CPU剖析结果:

Fig. CodeXL对某Qt演示程序的CPU剖析结果

       该截图展示了调用图的可视化结果,点击采样最多的函数可以看到最繁忙的函数调用链,另外在独立的页签中还有采样最多的函数和模块的列表。

        微软的Visual Studio即便在其社区版中都集成了其自带的剖析器,但我们决定以Qt Creator作为IDE,因此不作讨论。Luke Stackwalker(http://lukestackwalker.sourceforge.net/)有比Very Sleepy更好的用户界面并且有Windows版,但遗憾的是它仅支持微软编译器的调试信息格式。由于我们使用MinGW的GNU编译器,我们也不得不舍弃它。开源的Orbit剖析器也是同样的原因不合适。谷歌的perftools工具集支持Windows,该工具集包含一个采样型剖析器,可是这个剖析器并没有Windows版本。

上一篇下一篇

猜你喜欢

热点阅读