如何有效地分析 cygwin 应用程序?

Posted

技术标签:

【中文标题】如何有效地分析 cygwin 应用程序?【英文标题】:How can I effectively profile a cygwin application? 【发布时间】:2011-10-04 16:58:11 【问题描述】:

我有一个 cygwin 应用程序(游戏:http://te4.org),我想对其进行分析,以找出为什么它在我的一台机器上如此缓慢。由于 cygwin 不生成 PDB 文件,因此通常的 Windows 配置文件嫌疑人不需要应用。

这类事情的最新技术是什么?我还没有发现很多关于使用 gprof 的令人鼓舞的事情(需要放入自定义库等),但如果有必要我会去那里。

【问题讨论】:

This method 可能不容易做到,但它应该告诉你问题是什么。 是的,问题是我想分析一些交互式的东西,所以在正确的时间来回切换到 gdb 将是一个严重的痛苦。不过,我之前做过这种采样(尤其是应用程序挂起),如果你能够管理时间,它确实有效。谢谢提醒。 是的,然后我要做的就是减慢交互式代码的速度,方法是 1) 在它周围放置一个循环,或者 2) 在调试器中创建一个数据更改监视。这会将调试器置于仿真模式,比正常速度慢 1 或 2 个数量级,这与“加速我”的作用相同。然后,当然,问题被找到/解决了,程序恢复正常,而且速度更快。 【参考方案1】:

Cygwin 有gprof。不知道是不是默认安装的,但是可以通过Cygwinsetup.exe安装;它是 binutils 包的一部分。

【讨论】:

是的,我听说过关于让它实际工作的恐怖故事(关于需要替换 libc 或类似内容,请参见上文)。不过,我会试试看,谢谢。

以上是关于如何有效地分析 cygwin 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在词法分析器生成器中有效地实现最长匹配?

3 如何进行程序设计才能最有效地解决复杂编程问题

如何有效地分析相互递归函数

从 cygwin 移植到 win32 本机程序

如何使用 cygwin 在 Windows 上构建 zeromq?

如何有效地进行数据挖掘和分析