繁体   English   中英

java性能Windows vs Linux

[英]java performance Windows vs Linux

我开发了一个通常在Linux上运行的Java应用程序。 这是一个使用Swing的POJO应用程序。 表现相当不错。

现在我尝试在具有2Gb RAM的Windows XP上,在具有相似或更大效力的机器上运行它,性能更差。 我发现它使用100%的CPU。

例如:

  • 创建窗口非常繁重的进程,包含许多组件:Linux 5秒,Windows 12。
  • 访问具有大量查询的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM