VisualVM Sampler CPU swing paint() 怪异
Posted
技术标签:
【中文标题】VisualVM Sampler CPU swing paint() 怪异【英文标题】:VisualVM Sampler CPU swing paint() weirdness 【发布时间】:2012-10-30 20:48:07 【问题描述】:我一直在分析我的摇摆应用程序,它是可视化的并且进行了大量的重绘:通过调用 repaint 并在 paintComponent() 中进行绘制。
我正在使用 VisualVM,并使用 Sampler 来查看哪些方法使用大量 cpu。
我的很多绘制方法都在列表的顶部,这并不奇怪。
但是可以看到一个奇怪的效果,每次我启动我的应用程序并启动一个 cpu 示例会话时,不同的绘制方法都位于热点的顶部。
我觉得这很奇怪,因为我在我的应用程序中使用完全相同的数据集。
是否有可能某些东西(可能是摇摆油漆模型)弄乱了 visualvm 结果?
【问题讨论】:
【参考方案1】:您必须记住,Swing 是一个事件驱动的系统。这些事件不太可能以完全相同的顺序发生。
此外,重绘管理器受操作系统支配。操作系统可能会根据自己的要求向重绘管理器提出更新其 UI 部分的请求,同样,这些不太可能每次都以完全相同的方式发生。
【讨论】:
感谢您的回复。我的窗口在每次鼠标移动时都会重新绘制,因此每次疯狂移动鼠标时,visualvm 会在一段时间后获得总体平均值。这排除了其他影响。问题更多的是cpu使用量的差异,一次绘制方法x有70%,绘制方法y 10%,下一次方法x有20%,方法y有60%。在大多数油漆方法上都可以看到这些差异。这对我来说没有多大意义;-) @T. Akhayo 性能取决于刷新率(多少/每秒),最重要的是屏幕尺寸(极差在 800x600 和全高清之间)以上是关于VisualVM Sampler CPU swing paint() 怪异的主要内容,如果未能解决你的问题,请参考以下文章
VisualVM:CPU/内存分析器卡在“连接到目标 JVM...”