资讯详情

学JAVA软件开发技巧-无锡东方博宜

2017-05-03 阅读:121 来源:无锡东方博宜教育培训
进入>

5个优化Java堆的技巧

对于有过Java认证经历的人来说,都知道很多性能问题都是由Java堆容量不足和调优引起的,今天无锡东方博宜学校就和大家一起分享5个Java堆优化的技巧:

学校地址:无锡市兴源北路北创无锡市兴源北路401号一期5楼550

咨询 

1、JVM:对难以理解的东西产生恐惧感

千万不要以为,通过配置,调优,就可以排除那些你所不明白的问题。有些人认为Java程序员不需要知道内部JVM内存管理。毫无疑问,这种观点明显是错误的,如果想拓宽知识面和提升排除故障能力,你就必须要了解和学习一下JVM内存管理。

对于Java或者是JavaEE新手来说,JavaHeap调优和故障排除是一项非常有挑战的工作。下面会提供一些典型的案例场景:

客户端环境面临着有规律的OutOfMemoryError错误并且对业务造成了很大的影响。

你的开发团队要在如此大的压力下去解决这个问题,通常会怎么做?

1)用谷歌搜索引擎找到类似的问题并且你会相信(或假设)你也面临同样的问题。

2)你会抓住JVM-Xms和存在OutOfMemoryError异常这几个关键字的例子,然后希望通过这样的案例来快速解决客户端问题。

3)最后你会在你环境中使用相同的调优方法。两天后,问题仍然发生(甚至更糟或者稍微好点)……

到底是哪里错了呢?

首先,没有摸清问题根源所在?对开发环境没有正确地进行深层面(规格、负载情况等)理解。网络搜索是一个非常优秀的学习方法和知识分享工具,但是你必须结合自己的实际项目,从根本上进行分析解决。

可能缺乏基本的JVM和JVM内存管理技能,阻止你把所有的点给连接起来。

今天讲的第一条技巧是帮助你理解基本的JVM原则及其与众不同的内存空间。这些知识都是相当重要的,它可以帮助你做出有效的调优策略、更加正确合理的预测将来会产生的影响、提前知道未来需要做哪些调优工作。下面来看一下JVM参考指南:

JVM内存分为3个内存空间

●JavaHeap:适用于所有的JVM厂商,通常用来拆分YoungGen(幼苗)和OldGen(终身享用)空间。

●PermGen(永久代):适用于SunHotSpotVM((PermGen空间在Java7或者Java8更新中将会被删除)

●NativeHeap(C-Heap):适用于所有的JVM厂商。

正如你所看到的,JVM内存管理比使用Xmx设置最大值更为复杂。你需要查看每个角度,包括本地和PermGen需求以及从主机上查看物理内存可用性(CPUcore)。

在较大的JavaHeap和较小的本地Heap比赛中,32位虚拟机可能会变得相当棘手。试图在一个32位VM如2.5GB+上设置一个大型堆,根据应用程序占用和线程数量等因素会增加OutOfMemoryError这个异常抛出。64位JVM可以解决这个问题,但物理资源可用性和垃圾回收成本仍然是有限制的(成本主要集中在GC大小收集上)。最大并不表示是最好的,所以请不要假设在一个16GB的64位虚拟机上可以运行20个JavaEE应用程序。

2、数据和应用程序为王:回顾静态占用需求

应用程序以及相关数据将决定Java堆空间占用需求。通过静态内存,可"预测"下面的内存需求:

●确定将会有多少不同的应用程序部署到预先计划的一个单独的JVM进程上,例如有多少个ear文件、war文件、jar文件等。在一个JVM上部署的应用程序越多,对本机堆的需求就越多。

●确定有多少个类需要在运行时加载:包括第三方API.越多的类加载器和类在运行时被加载,在HotSpotVMPermGen空间和内部JIT相关优化对象上的需求就越高。

●确定数据缓存占用,如应用程序加载内部缓存数据结构(和第三方API),例如数据库中的数据缓存,从文件中读取数据等。数据缓存使用越多,JavaHeapOldGen空间需求就越高。

●确定允许建立的中间件线程数量。这是非常重要的,因为Java线程需要足够的本机内存,否则会抛OutOfMemoryError异常。

加载全文

免责声明:本站部分内容、图片来自用户自主上传,如果您对本站信息资源版权的归属问题存有异议,请您致信,我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。

以上是无锡东方博宜教育培训为大家整理的有关学JAVA软件开发技巧-无锡东方博宜的全部内容,更多精彩请访问学习资讯新闻专栏。

相关课程

更多>
2020猎学网广告栏
申请课程免费试听名额

课程顾问24小时内联系您

你好

顾问将于24小时内联系您!

确定
在线咨询 微信咨询 立即报名
申请1对1课程顾问咨询服务
×
你好

顾问将于24小时内联系您!

确定
北京猎学网 >无锡东方博宜教育培训 >学JAVA软件开发技巧-无锡东方博宜