根据我的一些客户,Java应用程序在Windows 7的Windows XP兼容模式下运行速度更快,但为什么?
我自己似乎没有这个问题,但是他们发现应用程序似乎正在消耗100%的cpu,而不做任何事情,只需将调用java的一个exe或一个批处理文件的属性设置为Windows XP兼容模式就可以修复它可以吗
解决方法
没有明确的答案,但只是一种在现场诊断发生的方式.
您必须确认哪个进程正在消耗cpu及其正在完成的操作,例如通过监视系统调用:像Process Explorer和Process Monitor这样的系统工具应该会引出可能出错的线索.至少,您可以比较执行配置文件与不兼容模式.
由于问题可能来自Java应用程序本身,您应该尝试使用像Netbeans Profiler这样的工具进行JVM分析.也许该代码依赖于某些旧的Windows XP特定内容,例如不再存在或已更改的目录结构或环境变量Windows 7(但是您在自己的安装中保留/重新应用)…导致不正确的错误处理和无限循环的重试.
本机Windows分析器也可能是一种选择,但是在没有JVM源代码的情况下进行分析以及Java代码由于JIT而言是非常困难的.