spe*_*der 3 c++ lua profiling mingw
我在另一个帖子里问,如何分析我的东西,人们给了我很多很好的答复,只是当我尝试使用一些免费的分析器时,例如 AMD Codeanalyst,它们只支持 Microsoft PDB 格式,而 MingW 无法生成那些。
那么,什么分析器可以帮助我分析一个使用 Lua 脚本编写并使用 MingW 编译的多线程应用程序?
编辑:gprof 是废话,说我为什么不想要它的 awnser,就在现场......如果我得到它列出的所有功能都很麻烦,它们都与我遇到的问题无关(有某个动作会导致大幅减速,我不知道为什么,gprof 也无法理解)
如果您不想使用gprof,我并不感到惊讶。
我花了一段时间才弄清楚如何在 GDB 下执行此操作,但这就是我所做的。运行应用程序并将焦点更改为应用程序的输出窗口,即使它只是一个 DOS 框。然后我按下 Control-Break 键(虽然它很慢)。然后 GDB 停止,我执行信息线程,它告诉我有哪些线程,通常是 1 和 2。我切换到我想要的线程,比如线程 2。然后我执行bt以查看堆栈跟踪。这告诉我当我点击 Control-Break 时它在做什么。我这样做了很多次,比如 10 或 20 次,如果出现性能问题,无论是什么,它都会出现在堆栈的多个样本上。它使程序越慢,我在看到它之前必须采取的样本就越少。
有关其工作方式和原因的完整分析,请参阅该链接。
PS当我启动 GDB 时,我也会处理 SIGINT stop print nopass。