首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何编写高效的Java代码?

如何编写高效的Java代码?
EN

Stack Overflow用户
提问于 2009-06-03 09:48:11
回答 7查看 19.3K关注 0票数 18

大家可能都知道,Java代码是由JVM编译和解释的。我的问题涉及到优化:它是只在运行时由JVM优化,还是在编译时也优化?

为了编写高效的代码,我在哪里可以找到支持的优化列表?或者,JVM优化是否足够强大,以至于我只需编写可读且易于维护的代码,而不管速度性能如何?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-06-03 09:52:52

大多数优化都是由JVM完成的。通常,在JIT级别比在编译时有更多的优化空间。(“优化”标志实际上是从javac中去掉的,因为事实证明,一些“优化”实际上会损害现实世界中的性能。)

一般而言(这适用于许多语言/平台,而不仅仅是Java):

  • 编写可读性和可维护性尽可能好的代码。
  • 有性能目标和基准,所以你总是可以测量performance
  • Put的工作量,让你的体系结构执行;这很难在以后改变(与改变implementation)
  • Think相比,更多的是关于算法的复杂性,而不是“使它快10%”:从O(n^2)到O(n)的改变(通常)要重要得多。(这在很大程度上取决于现实世界的使用情况-如果你只打算处理小值的n,那么“理论上更好”的算法很容易因为常量回滚( factors.)
  • Use a profiler )来确定瓶颈在哪里而变得更慢当分析器建议经过这样的优化后值得回滚( doing
  • Measure )时,才会以可读性为代价进行微优化-在这种情况下,回滚

实际上可能没有太大影响

票数 33
EN

Stack Overflow用户

发布于 2009-06-03 09:54:46

Java编译器可以检测“热点”,并自适应地修改正在执行的代码,从而提供更好的性能。HotSpot JIT编译器可以检测“热点”并自适应地修改执行代码。阅读关于它的here

另一方面,如果你想一开始就编写高效的代码,那就读一本书,比如Robert Simmons的"Hardcore Java“或者Brian Goetz的"Java Concurrency in Practice”。

票数 5
EN

Stack Overflow用户

发布于 2009-06-03 09:50:35

我肯定会选择写代码的可读性和可维护性,而不是假设的优化。

过早的优化通常被认为是一件坏事。http://en.wikipedia.org/wiki/Optimization_(computer_science)#When_to_optimize

当然,使用性能分析工具测量和证明瓶颈完全是另一回事。如果你这样做了,并且可以证明有一些地方需要优化,那么你就可以衡量好处,然后进行优化。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/943883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档