优化 Java 堆大小的 5 个技巧
发表于 2012-07-25 09:13| 14956 次阅读| 来源 CSDN 编译| 811 条评论| 作者 Pierre
GCJava 性能调优 JVMHeapJava 编程语言
摘要:Java 堆容量不足可以对性能造成很大影响,这样无疑就给程序带来不可必要的麻烦,
本文总结了影响 Java 堆容量不足的五大原因以及巧妙地去优化?
本文作者 Pierre 是一名有 10 多年经验的高级系统架构师,他的主要专业领域是 Java EE、
中间件和 JVM 技术。根据他多年的工作实践经验,他发现许多性能问题都是由 Java 堆容
量不足和调优引起的。下面他将和大家分享非常实用的 5 个 Java 堆优化技巧。
1.JVM:对难以理解的东西产生恐惧感
千万不要以为,通过配置,调优,就可以排除那些你所不明白的问题。有些人认为 Java 程
序员不需要知道内部 JVM 内存管理。毫无疑问,这种观点明显是错误的,如果想拓宽知识
面和提升排除故障能力,你就必须要了解和学习一下 JVM 内存管理。
对于 Java 或者是 Java EE 新手来说,Java Heap 调优和故障排除是一项非常有挑战的工
作。下面会提供一些典型的案例场景:
客户端环境面临着有规律的 OutOfMemoryError 错误并且对业务造成了很大的影响。
你的开发团队要在如此大的压力下去解决这个问题,通常会怎么做?
1. 用谷歌搜索引擎找到类似的问题并且你会相信(或假设)你也面临同样的问题。
2. 你会抓住 JVM-Xms 和存在 OutOfMemoryError 异常这几个关键字的例子,然后希
望通过这样的案例来快速解决客户端问题。
3. 最后你会在你环境中使用相同的调优方法。两天后,问题仍然发生(甚至更糟或者
稍微好点)……
到底是哪里错了呢?
首先,没有摸清问题根源所在?对开发环境没有正确地进行深层面(规格、负载情况等)
理解。网络搜索是一个非常优秀的学习方法和知识分享工具,但是你必须结合自己的实际
项目,从根本上进行分析解决。
可能缺乏基本的 JVM 和 JVM 内存管理技能,阻止你把所有的点给连接起来。
今天讲的第一条技巧是帮助你理解基本的 JVM 原则及其与众不同的内存空间。这些知识都
是相当重要的,它可以帮助你做出有效的调优策略、更加正确合理的预测将来会产生的影
响、提前知道未来需要做哪些调优工作。下面来看一下 JVM 参考指南:
JVM 内存分为 3 个内存空间
评论6