Java 有哪些提高性能的技巧?

What are some performance-improving tips for Java?

大家好,

我是 Java 中的一个相对较新的程序员(一般而言),但我想知道在我编写的程序中最小化内存和 RAM 使用的不同方法。我听说过一些 StringBuilder 作为 + 字符串连接和其他东西的替代方法,但我想听听你们知道如何最大限度地提高性能以及原因。

提前致谢!

在现代编程中,将时间花在提高代码的可读性上比尝试微观优化要好得多。

现代编译器在这些小的优化方面做得非常出色,因此日常程序员不必处理它们,在大多数情况下,最好将其留给编译器而不是自己尝试.

总的来说,我认为通过提前考虑程序设计可以获得最大的性能改进,甚至在您开始输入之前。一旦您已经编写了 10,000 多行代码来实现您最新的 3D 高性能 MMORPG,并且您意识到它没有您希望的那么高性能,那么进行任何重大的设计更改都将是一项相当大的工作。事先要考虑的一些事情是:

  • 想想你的算法的复杂性,例如字符串连接可以是 O(n^2) 使用 String,但 O(n) 使用 StringBuilder。
  • 使用object pools重用内存而不是每次都创建新实例
  • 重用数据结构等的现有库实现,而不是尝试自己重新创建它们。在这些实施中投入的工时比您可能花在它们上的工时要多得多,因此它们可能会更多 efficient/robust

最后我要提一下,如果您确实尝试优化某些现有代码,因为它的性能不如所需,那么明确知道问题区域在哪里非常重要。在这种情况下,分析器是无价的,它应该有助于查明影响性能的任何特定区域。他们可能不是你期望的地方!