日期是12/02/10。圣诞节前的日子一天天过去,作为一个 Windows 程序员,我几乎遇到了一个主要的障碍。我一直在使用 AQTime,我尝试了瞌睡、闪亮和非常瞌睡,就在我们说话的时候,VTune 正在安装。我曾经尝试使用 VS2008分析器,它一直是积极的惩罚,而且经常是不理智的。我使用了随机暂停技术。我检查了呼叫树。我发射了功能追踪。但令人痛心的事实是,我正在使用的应用程序有超过100万行代码,可能还有价值100万行的第三方应用程序。
我需要更好的工具。我已经尝试了每个主题中列出的每个分析器。只是必须有比这些垃圾和昂贵的选择,或荒谬的工作量几乎没有收益更好的东西。更复杂的是,我们的代码是高度线程化的,并且运行了许多 Qt Event 循环,其中一些循环非常脆弱,以至于由于时间延迟,它们在高度仪器化的情况下崩溃。别问我为什么要运行多个事件循环。没人能告诉我。
在 windows 环境下还有其他类似 Valgrind 的选择吗?
还有什么比我已经试过的一长串破工具更好的吗?
是否设计了任何与 Qt 集成的东西,也许是一个有用的队列中事件显示?
我尝试过的工具的完整列表,以及那些在斜体字中真正有用的工具:
我还没有尝试过的建议工具:
备注: 目前的英特尔环境。VS2008,增强库。Qt 4 + .还有最可怜的惊喜: 通过 trolltech 实现 Qt/MFC 集成。
大纲
在许多其他问题中,有许多组件最近被切换到了不正确的线程模型,由于我们下面的代码突然不再是多线程的,这导致了严重的挂起。我不能说更多,因为它违反了我的保密协议,但我可以告诉你,这将永远不会发现随意检查,甚至通过正常的代码审查。如果没有侧写器,电话记录器,以及随机的连接暂停,我们仍然会在美丽的蓝色弧线天空尖叫我们的愤怒。谢天谢地,我和一些我见过的最好的黑客一起工作,我有机会进入一个充满了伟大的工具和伟大的人的神奇的宇宙。
先生们,我非常感激你们的帮助,只是很遗憾我没有足够的名声来奖励你们每一个人。我仍然认为这是一个重要的问题,需要得到一个更好的答案,而不是迄今为止我们所得到的关于 SO 的答案。
因此,在接下来的三周里,我每周都会拿出我能支付得起的最大数额的奖金,然后用我认为不是常识的最好的工具来奖励答案。三个星期后,我们就有希望获得侧写师的最终侧写,请原谅我的双关语。
外卖
用个侧写师。他们对 Ritchie Kernighan Bentley 和 Knuth 都很好。我不管你以为自己是谁。用个侧写师。如果你有一个不工作,找到另一个。如果找不到,代码1。如果你不能编写一个代码,或者只是一个小小的挂断,或者你只是卡住了,使用随机暂停。如果一切都失败了,雇几个研究生来搞定一个侧写师。
现在,我不得不说,我认为在 W7x64环境中分析 C + + 代码没有明确的选项,但是肯定有一些选项无法执行任何有用的服务。