加速Java

这实际上是两个问题,但它们非常相似,为了简单起见,我想我会把它们放在一起:

  • 首先 :给定一个已建立的Java项目,有什么体面的方法可以加速超越简单的代码内优化?

  • 其次 :在Java中从头开始编写程序时,有什么方法可以大大提高性能?

  • 除非特定于Java,否则请远离一般优化技术。

    我之前曾问过关于Python和Perl的内容。 对于Java,我想知道有什么好的提示/技巧来提高性能,以及是否有任何特别好的Java分析器。


    首先:通过代码优化,我会假设你已经完成了正确的算法和正确的算法实现。 在这种情况下,您可以使用分析器并查看您的垃圾收集器(GC)收集垃圾的频率以及它用于完成垃圾收集的时间。 然后你开始研究GC选项 - 但要小心,如果你不知道自己在做什么,就会陷入困境。
    我假设你正在使用java 5/6。 在这种情况下,我会通过http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html上的java 5调优指南。 还有一个关于java性能的非常好的新信件,称为http://www.javaperformancetuning.com/,您可以订阅它。

    除此之外,看看你可以消除多少个try / catch块。 看看你是否可以消除不必要的抛出异常。

    使用缓存,你可以但不要这样做。

    阅读有效的Java,第1版和/或第2版

    Profiler:我使用yourkit。 这对于Java 1.5及更高版本来说非常好。 您可以获得个人许可。 其他配置文件也很好。

    就像你有单元和集成测试一样,在你的连续集成(CI)版本中运行一些性能测试并不会有什么坏处。 通过这种方式,您可以知道何时退步,特别是如果您使用的是良好的CI构建服务器。


    确保您的日志级别不会在DEBUG上意外遗留下来:)


    “测量,不要猜测。”
    这里有一篇关于使用NetBeans Profiler加速iText PDF库的好文章。 我自己使用NetBeans Profiler,并且发现它在追踪我遇到的一些性能问题时非常简单和有用。

    对于较旧的应用程序,只需迁移到Java 6就可以提高性能。 有关Java 6中性能改进的信息,请参阅此白皮书。

    链接地址: http://www.djcxy.com/p/6725.html

    上一篇: Speeding Up Java

    下一篇: height bug... any 2011 solutions?