10

根据我的一些客户的说法,Java 应用程序在 Windows 7 上以 Windows XP 兼容模式运行得更快,但为什么呢?

我自己似乎没有问题,但他们发现应用程序似乎正在消耗 100% cpu 而什么都不做,只需将 exe 或调用 java 的批处理文件的属性设置为 Windows XP 兼容模式即可修复它,如何可以吗?

4

3 回答 3

4

没有明确的答案,只是一种在现场诊断到底发生了什么的方法。

您必须确认哪个进程正在消耗 CPU 以及它到底在做什么,例如通过监控系统调用完成:像Process ExplorerProcess Monitor这样的sysinternals工具应该会提供有关可能出错的线索。至少,您可以将执行配置文件与没有 XP 兼容模式进行比较。

由于问题可能来自 Java 应用程序本身,您应该尝试使用Netbeans Profiler等工具进行 JVM 分析。也许代码依赖于一些旧的 Windows XP 特定的东西,如在 Windows 7 中不再存在或已更改的目录结构或环境变量(但您在自己的安装中保留/重新应用)......导致不正确的错误处理和无限循环例如重试次数。

本机 Windows 分析器也可能是一种选择,但如果没有 JVM 源代码,以及由于 JIT 而关注 Java 代码时,分析起来就太困难了。

于 2012-09-03T06:44:35.017 回答
0

没有直接的解决方案,但是您的问题非常开放。

如果您的客户可以始终如一地重现这一点,您可能会看到他们是否愿意向您发送远程协助请求,让您进入他们的桌面。然后至少您可以看到问题的实际效果,并尝试使用其他人提到的工具在他们的机器上进行调试。

于 2012-09-07T16:47:02.923 回答
-1

这是因为内部任务的切换。与 Windows 7 相比,Windows Xp 在兼容模式下的任务切换更多。这也可能是由于防火墙的原因。检查 Windows 7 中的防火墙状态。

于 2012-09-03T05:04:35.383 回答