简介
- 在实际开发过程中,我们经常会对开发的程序进行性能测试,从而找到程序的性能瓶颈。那么在找到程序的性能瓶颈之后 ,如何定位性能问题呢,简而言之就是可以直接找出哪一个函数产生了性能开销,如何程序简单之如只有几十行代码,那么可以直接人肉的方式进行定位;但是如果程序大至几十万行代码或者几百万行代码,这个工作量就非常大了。
WPT工具包
提供给我们了一个非常好的方式去完成这种任务,这种方式称为调用栈追踪(call stack trace)
在前面的博文中《如何使用WPR
和WPA
记录系统状态》已经提到过WPT工具包
可以对CPU的活动进行记录。那么调用栈追踪
的原理也是依赖于此,由于CPU活动的记录中包含了CPU每一帧的数据,这一帧的数据当中又包含了调用的函数地址,因此我们依旧可以通过WPA
直观的看出调用了哪些函数以及调用的次数。
下面来介绍调用栈追踪的步骤
1)首先打开我们的测试样例程序StackTrace.exe
,该程序源码在我的Github上《WPT-sample》