【实战】java 性能优化的五大技巧

【实战】java 性能优化的五大技巧

ID:8799072

大小:192.30 KB

页数:6页

时间:2018-04-08

【实战】java 性能优化的五大技巧_第1页
【实战】java 性能优化的五大技巧_第2页
【实战】java 性能优化的五大技巧_第3页
【实战】java 性能优化的五大技巧_第4页
【实战】java 性能优化的五大技巧_第5页
资源描述:

《【实战】java 性能优化的五大技巧》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、要对你的Java代码进行优化,需要理解java不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的。使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧。  在我们开始之前,你也许会担心许可的问题.Java为Oracle公司所有,遵循Oracle的BCL许可,该许可证不是一个免费/开源许可证。即便如此,仍然有许多开源项目由Oracle公司的Java开发。OpenJDK是java平台自由软件的实现,遵循GPLv2许可。(更多信息请参见维基百科FreeJavaimplementations。)让我们开始吧  性能优化取决于多个因素,包

2、括垃圾收集、虚拟机和底层操作系统(OS)设置。有多个工具可供开发人员进行分析和优化时使用,你可以通过阅读JavaToolsforSourceCodeOptimizationandAnalysis来学习和使用它们。如果你正苦苦挣扎于术语和Java的原理,可以先去查看LivecodingJavacategorypage,上面有直播,存档的视频,以及一些其他有用的信息。“视情况而定”  必须要明白的是,没有两个应用程序可以使用相同的优化方式,也没有完美的优化java应用程序的参考路径。使用最佳实践并且坚持采用适当的方式处理性能优化。想要达到真正最高的性能优

3、化,你作为一个Java开发人员,需要对Java虚拟机(JVM)和底层操作系统有正确的理解:·JVM和底层操作系统:Java 虚拟机是任何Java程序的家。阅读 JVMinternalsguide 了解更多有关于 JVM内部和操作系统差异的内容。·JVM分布模型:Java分布模型为您的应用程序处理多个JVM实例。分布模型提高了应用程序的性能,因为它获得更多的资源来工作。你可以用两种方法继续优化。第一种方法是在一个堆大小为2GB或8GB的单服务器运行多个JVM。第二种方法是在多个服务器上运行单个JVM。正确方法的选择取决于多个因素,包括可用性和响应性。·

4、JVM体系结构:选择正确的JVM体系结构对于性能来说是很重要的。你可以选择 64位或者32位的 JVM机器。一般来说,32位JVM的性能比它对应的64位JVM要好。 只有当你需要的堆大小大于3GB时,才选择64位的JVM。·清楚了性能优化和其要素,现在我们可以专注于那些可以优化你的Java应用的技巧.1、调整垃圾收集(GC)  由于垃圾收集的复杂性,很难发现你的应用的准确性能.不过,如果你真的想优化你的应用,你应该相应地处理垃圾收集.通用的准则是调整GC设置并同时执行性能分析.  一旦你对结果感到满意,你可以停止该过程并寻求其他优化方式.确保除了在平

5、均事务处理时间之外,你还留心了异常值.这些异常值是造成Java应用缓慢的真正的罪魁祸首并且很难找到.  此外,你要明白应用运行期间性能下降的效应.在每单个cpu时钟内的缓慢操作是可以忽略的,但在每单个数据库事务中的缓慢操作则是非常昂贵的消耗.但是你应该根据性能短板选择你的优化策略,并应该根据工作负载来优化应用.2、正确地选择适合你的GC算法  让我们更深入地探讨GC优化.毕竟,GC优化是要处理的整个优化问题中最基本的.目前,Java中有四种供你选择的垃圾收集算法.每种算法满足不同的需求,因此你要选择(适合你的需求的).很多开发人员正是因为不了解GC算

6、法而未能优化他们的应用.  这四个算法分别是串行回收器,并行/吞吐量回收器,CMS回收器和G1回收器.想要了解更多关于每种垃圾收集器的信息及它们是如何工作的,请查看这篇来自Takipi博客的非常棒的文章GarbageCollectors—Serialvs.Parallelvs.CMSvs.G1.这篇文章同时还讨论了Java8对GC算法的影响及其他细节上的改变.  让我们再回到GC算法上,根据UnderstandingJavaGarbageCollection这篇文章所述,并发标记和清除GC(即"CMS")算法才是适合网络服务端应用的最佳算法.并行GC

7、算法适合那些内部可预测的应用.  G1和CMS是并发操作的理想选择,但仍然会引起(应用)频繁停顿.实际的选择取决于你如何取舍.举例来说,尽管选择并行算法会带来更长的GC停顿时间,但相较于其他GC算法,选择并行算法仍是一个好主意.3、Java堆  Java内存堆在迎合内存需求方面担任了至关重要角色.通常更好的做法是初始时分配最小的堆,然后通过持续的测试不断增加它的大小.大多数时候优化问题都可以通过增加堆的大小解决,但如果存在大量的GC开销,则该解决方案不起作用.  GC开销还会使吞吐量急剧下降,进而使得应用难以形容的慢.此外,及早调整GC可以帮助你避免

8、堆大小分配的问题.开始的时候,你可以选择任何1GB到8GB的堆大小.当你选择正确的堆大小,老生代和新生代对象

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。