无原因的无响应java应用程序

无原因的无响应java应用程序,java,windows,Java,Windows,我有一个从Eclipse3.5运行的java应用程序。 我的操作系统是WinXP(SP2),JRE版本是6.05 我在两台相同的计算机上运行应用程序(或者我认为是这样),但应用程序在每台计算机上的行为不同 这些计算机都是相同的Dell Optiplex型号,具有相同的内存量和相同的GPU 在第一台计算机上,应用程序可以完美地运行。但是,在第二个应用程序上,应用程序会冻结几分钟,然后恢复正常运行 奇怪的是,第二台计算机上的CPU使用率并不高。似乎我的应用程序没有收到任何CPU,没有明显的原因 计算

我有一个从Eclipse3.5运行的java应用程序。 我的操作系统是WinXP(SP2),JRE版本是6.05

我在两台相同的计算机上运行应用程序(或者我认为是这样),但应用程序在每台计算机上的行为不同

这些计算机都是相同的Dell Optiplex型号,具有相同的内存量和相同的GPU

在第一台计算机上,应用程序可以完美地运行。但是,在第二个应用程序上,应用程序会冻结几分钟,然后恢复正常运行

奇怪的是,第二台计算机上的CPU使用率并不高。似乎我的应用程序没有收到任何CPU,没有明显的原因


计算机应该是确定性的,所以我认为这两种机器之间肯定有一些区别,但我不知道该去哪里找

我想知道问题出在哪里

谢谢,
Yoav.

好吧,我会首先更新你的JRE版本,因为现在有更新的版本

至于两台计算机都是一样的,它们真的是一样的吗?我发现很难相信两者都有完全相同的软件和设置,而且你对其中一方所做的任何事情,你总是对另一方所做的。如果确实是这样,您可能希望尝试在第二台机器(挂起的机器)上调试应用程序,并找出它挂起的具体位置


如果您提供更多关于您的申请的信息,也可能对我们有所帮助。如果应用程序正在执行web访问、网络访问等操作,那么问题可能根本不在您的计算机上。

好吧,我会首先更新您的JRE版本,因为现在有更新的版本

至于两台计算机都是一样的,它们真的是一样的吗?我发现很难相信两者都有完全相同的软件和设置,而且你对其中一方所做的任何事情,你总是对另一方所做的。如果确实是这样,您可能希望尝试在第二台机器(挂起的机器)上调试应用程序,并找出它挂起的具体位置


如果您提供更多关于您的申请的信息,也可能对我们有所帮助。如果应用程序正在执行web访问、网络访问等操作,那么问题可能根本不在您的计算机上。

因此,两台计算机的硬件几乎相同。还有一些事情需要检查

  • 他们是否都安装了Eclipse 3.5、WinXP(SP2)和JRE 6.05
  • 在Eclipse中运行时(在两台机器上运行还是在一台命令行上运行)的行为会有所不同
  • 这是可复制的吗?如果是,什么时候发生?启动时?还是说具体行动
  • 这个程序有GUI吗
  • 是否有某种病毒扫描器或其他类似软件安装在其中一台机器上,可能会延迟程序
  • 是否涉及网络、文件访问和多线程

    • 所以两台计算机的硬件几乎相同。还有一些事情需要检查

      • 他们是否都安装了Eclipse 3.5、WinXP(SP2)和JRE 6.05
      • 在Eclipse中运行时(在两台机器上运行还是在一台命令行上运行)的行为会有所不同
      • 这是可复制的吗?如果是,什么时候发生?启动时?还是说具体行动
      • 这个程序有GUI吗
      • 是否有某种病毒扫描器或其他类似软件安装在其中一台机器上,可能会延迟程序
      • 是否涉及网络、文件访问和多线程

      我可以想到两种非应用的可能性:

    • 内存分页。在速度较慢的机器上会发生一些额外的事情,因此JVM无法获得公平的CPU时间份额。大型守护进程或类似的进程

    • 网络接入。你的应用程序正在进行某种类型的网络呼叫,并且出现故障或超时。也许去获取一些XML模式,也许一个磁盘可以访问一个挂载的驱动器


    • 当应用程序试图通过名称和DNS访问主机时,我看到了各种各样的奇怪之处。一台机器有一个etc/主机条目,另一台没有。甚至每台机器都可能需要自行解决问题。

      我可以想到两种非应用的可能性:

    • 内存分页。在速度较慢的机器上会发生一些额外的事情,因此JVM无法获得公平的CPU时间份额。大型守护进程或类似的进程

    • 网络接入。你的应用程序正在进行某种类型的网络呼叫,并且出现故障或超时。也许去获取一些XML模式,也许一个磁盘可以访问一个挂载的驱动器


    • 当应用程序试图通过名称和DNS访问主机时,我看到了各种各样的奇怪之处。一台机器有一个etc/主机条目,另一台没有。甚至每台机器都可能想自己解决问题。

      我发现了问题所在

      未响应的应用程序在调试模式下运行


      很抱歉浪费了你的时间…

      我发现了问题

      未响应的应用程序在调试模式下运行


      很抱歉浪费了您的时间…

      当应用程序冻结时,它可能会帮助您获得一个新的应用程序。这将有助于准确地告诉您是什么阻碍了您(即在某处等待IO)。

      当应用程序冻结时,它可能会帮助您获得一个新的解决方案。这将有望准确地告诉您是什么阻碍了您(即在某处等待IO)。

      评论不错,但更新JRE不太可能产生任何效果。我将从调试开始(假设相同的事情不会发生在调试器上)。评论不错,但是更新JRE不太可能有任何效果。我将从调试开始(假设相同的事情不会发生在调试器上)。“计算机应该是确定性的”——我完全同意你的观点。但是我的电脑没有。反复无常的小杂种……“计算机应该是确定性的”——我完全同意你的看法。但是我的电脑没有。反复无常的小杂种。