Dav*_*vid 6 python java debugging performance debuggervisualizer
使用标准调试器调试性能问题几乎没有用,因为细节级别太高.其他方式使用分析器,但它们很少给我提供良好的信息,特别是当涉及GUI和后台线程时,因为我从来不知道用户是否实际上在等待计算机.另一种方法是使用Control + C并查看它停止的代码中的位置.
我真正想要的是快速前进,播放,暂停和倒带功能以及代码的一些视觉代表.这意味着我可以将代码设置为在Fast Forward上运行,直到我将GUI导航到关键位置.然后我将代码设置为以慢速模式运行,同时我得到一些视觉表示,正在执行哪些行(可能是某种缩小的代码视图).例如,我可以将执行速度设置为0.0001x.我相信我会以这种方式获得非常好的可视化,无论问题是在特定模块内部,还是在模块之间的通信中.
这存在吗?我的具体需求是在Python中,但我有兴趣在任何语言中看到这样的功能.
“快进到关键点”功能已经存在于任何调试器中,它被称为“断点”。确实有一些调试器可以减慢执行速度,但这不会帮助您调试性能问题,因为它不会减慢计算机速度。处理器、磁盘和内存仍然和以前一样慢,所发生的只是调试器在每行代码之间插入延迟。这意味着每行代码突然花费或多或少相同的时间,这意味着它隐藏了性能问题所在的任何痕迹。
发现性能问题的唯一方法是记录应用程序中完成的每个调用以及花费的时间。这就是探查器的作用。事实上,使用分析器很棘手,但可能没有更好的选择。理论上,您可以记录每个呼叫和每个呼叫的时间,然后通过倒带来回播放,但这将使用大量内存,而且它实际上不会告诉您比分析器更多的信息(事实上,它会告诉你更少的信息,因为它会错过某些类型的性能问题)。
您应该能够使用探查器找出什么花费了很长时间。请注意,这可能是由于某些函数调用需要很长时间,因为它们进行了大量处理,也可能是由于系统调用需要很长时间而变得很慢(网络/磁盘)。或者,一次非常快的调用可能会被称为多次调用。分析器将帮助您解决这个问题。但是,如果您可以仅在关键部分打开分析器(减少噪音)并且可以多次运行该关键部分(提高准确性),则会有所帮助。
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |