为什么连续两次处理JDialog框会导致这种效果

时间:2011-10-17 23:09:12

标签: java performance debugging swing dll

经过近五周的努力,我今天解决了一个错误。发生了什么事情是我连续两次处理JDialog盒后,客户端机器上的CPU出现了高峰(50%到100%)。

我实际上在对象中处理它,然后在创建对象的方法中处理它,这是一个愚蠢的错误。我花了一段时间才找到它,因为我没有引起空指针异常,而是在进程资源管理器中看到很多与MSVCR71.dll相关的CSWITCH Deltas。

使用分析器让我找到了正确的解决方案 我的问题:

  1. 为什么我没有得到空指针异常?

  2. 高CPU与CSWITCH Deltas之间的联系是什么?

  3. 为什么尝试两次配置对话框会导致这种情况?

  4. 谢谢,

    埃利奥特

1 个答案:

答案 0 :(得分:2)

作为JDialog父级的重量级对等Window由主机操作系统管理。

  1. 没有空指针异常,因为它在Java中,而不是主机操作系统。

  2. 连接位于dispose(),通过JNI与主机OS通信。

  3. 我怀疑,但无法证明受影响的.dll应该受到指责。