
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
性能问题一直都是程序员需要长期关注的一个问题,今天我们就通过案例分析来了解一下,java编程开发性能调优方法都有哪些。
分代垃圾回收器调优
还有一些其他的优化选项”-Xns”和”-XX:NewSize”,用来调整年轻代的大小,用来指定堆中专门负责新对象分配的空间大小。
大多数开发者都试图基于实验室环境调整年轻代的大小,这意味着在生产负载下存在失败的风险。一般新生代的大小设置为堆大小的三分之一至二分之一左右,但这不是一个准则,毕竟实际还要视应用程序逻辑而定。因此好先调查清楚年轻代到年老代的蜕变率以及年老代对象的大小,在此基础上(确保年老代的大小,年老代过小会频繁促发GC导致内存溢出错误)尽可能地调大年轻代的空间。
还有一个与年轻代相关的调优项”-XX:SurvivorRatio”,该选项用来指定年轻代中对象的生命周期,超过指定时长相关对象将被移至年老代。为了”正确”地设定该值,你需要知道年轻代空间回收的频率,能够估算到新对象在应用程序进程中被引用的时长,同时也取决于分配率。
并发垃圾回收调优
针对对停顿敏感的应用,建议使用并发垃圾回收,虽然并行的办法能够带来非常好的吞吐量基准测试分数,但是并行GC不利于缩短响应时间。并发GC是目前有效的实现一致性和少“stoptheworld”中断的方法。不同的JVM提供不同的并发GC的设定,OracleJVM(hotspot)提供”-XX:+UseConcMarkSweepGC”,今后G1将成为OracleJVM默认的并发垃圾回收器。
性能调优并不是真正的解决办法
或许你已经注意到上文中在讨论如何“正确“地设定调优此参数时,我刻意在”正确“二字上加了双引号。那是因为就我个人经验而言一旦涉及到性能参数调优,就没有严格意义上的正确设定。每一个设定值都是针对特定的场景。考虑到应用场景会发生变化,JVM性能调整充其量是一个权宜之计。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。