c++ - 请问支持 MingW32 的免费分析器好吗?

标签 c++ profiling lua mingw

<分区>

我在另一个线程中询问了如何分析我的东西,人们给了我很多好的答复,除了当我尝试使用几个免费的分析器时,例如 AMD Codeanalyst,它们只支持 Microsoft PDB 格式,并且MingW 无法生成这些。

那么,什么分析器可以帮助我分析一个使用 Lua 脚本并使用 MingW 编译的多线程应用程序?

编辑:gprof 是废话,说我为什么不想要它的 awnser 就在现场......如果我得到它列为麻烦的所有功能,它们都与问题无关我有(有一个特定的 Action 会导致速度大幅下降,我不明白为什么,gprof 也不明白)

最佳答案

如果你不想使用gprofI'm not surprised .

我花了一段时间才弄清楚如何在 GDB 下执行此操作,但这是我所做的。让应用程序运行并将焦点更改到应用程序的输出窗口,即使它只是一个 DOS 框。然后我按下 Control-Break 键(虽然速度很慢)。然后 GDB 停止,我执行信息线程,它告诉我有哪些线程,通常是 1 和 2。我切换到我想要的线程,比如 线程 2。然后我执行 bt 以查看堆栈跟踪。这准确地告诉我当我按下 Control-Break 时它在做什么。我这样做了很多次,比如 10 次或 20 次,如果出现性能问题,无论是什么问题,它都会出现在堆栈的多个样本中。它使程序运行得越慢,我在看到它之前必须采集的样本就越少。

有关其工作原理和原因的完整分析,请参阅该链接。

附言当我启动 GDB 时,我也会处理 SIGINT 停止打印 nopass

关于c++ - 请问支持 MingW32 的免费分析器好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3597530/

相关文章:

c++ - 如何在 constexpr 中进行 strlen?

c++ - 将 "this"从父类方法转换到子类方法是一个好的做法吗?

C++酒店入住与跳过13楼迭代编码项目(非IT系学生)

php - NewRelic - 如何忽略 PHP 应用程序的一部分

python - Lua/Python 中的持久套接字连接

c++ - 分析 ZeroMQ

c# - 无法在 VS 2010 性能分析器中捕获 CPU 指标

java - JProfiler UnsatisfiedLinkError 启动时

lua - Lua中的多线模式是什么?

python - 哪些编程语言功能非常适合开发实时编码框架?