在Linux平台,Qt Creator集成了Valgrind的callgrind工具,唉,这个工具不能用于Windows,因此在Windows平台上我们不得不寻找其他的替代工具。在介绍这些专用工具之前,我们要简单介绍一个鲜为人知(据我推测)却出奇有效的技术。
我把这个技术称为最简陋的采样技术。它非常简单。最简单的做法莫过于用调试器运行程序,试着多次暂停运行并检查调用栈。这个技术的原理(正如采样型剖析器的技术原理)是:经常被调用的函数会经常出现在调用栈内。尽管如此简单,这个技术有时也能给我们带来足够的信息去诊断问题。
或许出乎你的意料,通过Process Explorer可以很优雅的运用这个技术。我们只需要在Process Explorer中点击Thread页签,双击要选择的行,该线程的调用栈信息就能显示出来,见下面的屏幕截图:
除此之外,Thread页签还提供了单个线程内存使用情况,线程的创建和销毁状态(红色表示线程销毁,绿色表示线程创建),以及CPU负载情况等概要信息。
在接下来的几个部分,我们将展示如何使用更专业的工具更快地定位有性能问题的应用程序的可能的问题点。