[英]I'm trying to identify performance differences with the same java code on linux vs windows. On the face of it, performance under linux is much worse
[英]java performance Windows vs Linux
我开发了一个通常在Linux上运行的Java应用程序。 这是一个使用Swing的POJO应用程序。 表现相当不错。
现在我尝试在具有2Gb RAM的Windows XP上,在具有相似或更大效力的机器上运行它,性能更差。 我发现它使用100%的CPU。
例如:
访问具有大量查询的PostgreSQL数据库的过程(服务器和JDBC驱动程序是相同的):23秒Linux,Windows 43。
我还尝试使用具有类似功能的虚拟Windows机器,结果明显更好!
这是正常的吗? 我可以指定哪些参数来提高性能?
除非你在同一台机器上比较Linux和Windows XP,否则很难说它有什么区别。 可能是在CPU速度较快时,GFX卡和磁盘子系统速度较慢。
Java将所有这些IO和GFX活动传递给底层操作系统,唯一可以做的就是减少工作量或提高工作效率。 这可能会使两个系统更快,因为您可以调整一个操作系统并不特别。
尝试运行Java Visual VM(作为JDK的一部分分发):连接到您的应用程序,然后使用CPU Profiler精确确定所有CPU时间的去向。
JRE部分的行为可能存在细微差别(Swing浮现在脑海中),JRE对不良实践的反应非常无情(比如在Swing中从错误的线程做事)。
由于你没有线索,我会尝试在两个环境中分析相同的用例,看看是否有任何重大差异出现在花费时间的地方。 这将有希望揭示一个暗示。
编辑:并确保您不要运行带刹车的Windows(又称。防病毒和其他可能会破坏系统性能的“有用”软件)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.