java - 如何提高不属于您的代码的性能?

标签 java linux performance jvm

我们在运行调度算法的大得离谱的 Linux 机器上有一个内部的第 3 方 Java 应用程序。对于我们需要的负载,应用程序运行速度太慢。我们没有代码,供应商不会因为金钱原因对应用程序进行任何更改,因此我无法改进代码。该应用程序是单线程的,它的设计不适合并行化(所以我不能在两个盒子之间分配负载)。

无论是软件还是硬件,我可以做些什么来提高应用程序的性能?

最佳答案

  • 获取最新版本的 Java(较新的版本往往会提高性能)

  • Give Java more memory to work with (基准测试看这是否有任何区别)

  • top 衡量它在做什么。升级它遇到的任何问题(更多内存、更快的 CPU、SSD)。有些 CPU 比其他 CPU 更擅长单线程工作负载(阅读:不要在 Bulldozer 上运行它;带有 Turbo Boost 的东西可能会有帮助)。

  • 和其他人一起玩experimental JVM options (基准测试看这是否有任何区别)

  • 删除这台机器上运行的任何其他应用程序(基准测试以查看是否有任何好处——如果没有帮助就没有意义浪费金钱)

  • 付钱给供应商以加快速度或给你代码(即:给他们金钱上的理由来解决这个问题)

  • 寻找替代品

  • 写下你自己的选择

关于java - 如何提高不属于您的代码的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936045/

相关文章:

java - 评论 "Define methods that accept reusable objects to be filled in with data, rather than methods that return objects holding that data"

c - UART 16550 和 Linux 内核中的中断

linux - 如何打印两个文件之间的差异

c - SIGTERM 信号处理程序未打印到控制台

java - 为什么 JVM 性能会随着负载的增加而提高?

javascript - 在 React 组件中存储多个引用 vs 通过 ID 查询 DOM

java - 用于调试和错误的不同 log4j 布局?

java - IDE (intelliJ)、mvn-test 和 mvn-package 中的 JAR HELL : how to unify dependency relocation in all settings?

mysql - 优化 MySql 查询(IN)以避免使用 “Using filesort”

java - 如何使用 XMLSerializer 正确缩进 XML?