根据我的一些客户的说法,Java应用程序在Windows 7上以Windows XP兼容模式运行得更快,但为什么呢?
我自己似乎没有问题,但是他们发现应用程序似乎消耗100%cpu而什么都不做,只需设置exe或调用java到Windows XP兼容模式修复的批处理文件的属性它,怎么会这样?
答案 0 :(得分:4)
没有确切的答案,只是一种方法可以在现场诊断究竟发生了什么。
您必须确认哪个进程正在消耗CPU以及它正在做什么,例如通过监视已完成的系统调用: sysinternals 工具,如Process Explorer和Process Monitor应该引出可能出错的线索。至少,您可以比较执行配置文件与不兼容XP兼容模式。
由于问题可能来自Java应用程序本身,您应该尝试使用Netbeans Profiler等工具进行JVM分析。也许代码依赖于一些旧的Windows XP特定的东西,如目录结构或环境变量,在Windows 7中不再存在或已经改变(但你在自己的安装上保留/重新应用)......导致不正确的错误处理和无限循环例如,重试。
本机的Windows事件探查器也可能是一个选项,但如果没有JVM源代码,并且因为JIT而关注Java代码时,它很难分析。
答案 1 :(得分:0)
没有直接的解决方案,但你的问题很开放。
如果您的客户可以一致地重现这一点,您可能会看到他们是否愿意向您发送remote assistance request,让您进入他们的桌面。然后至少你可以看到问题在于行动,并尝试使用其他人提到的工具在他们的机器上进行调试。
答案 2 :(得分:-1)
因为内部任务切换。兼容模式下Windows Xp中的任务切换与Windows 7相比更多。它也可能因防火墙而导致。在Windows 7中检查防火墙状态。