"本文主要探讨了JVM的实现产品以及如何进行JVM调优,通过具体的参数设置示例来解决各种性能问题,如内存溢出、频繁垃圾回收、高CPU占用等。" 在Java世界中,JVM(Java Virtual Machine)是执行Java程序的关键组件。它是Java平台的核心部分,负责解释和执行字节码,提供运行环境,以及内存管理。不同的JVM实现产品有不同的特性和优化策略。Eclipse Java Compiler(EJC)是一个值得注意的实现,它是Eclipse IDE的一部分,提供了与JDK内置编译器相当的性能。 当面临JVM相关的性能问题时,例如内存溢出(Heap、Stack、Perm)、频繁GC(Garbage Collection)、高CPU占用、内存快速增长、远程调用超时以及系统响应时间变慢,我们需要对JVM进行调优。JVM调优的目标是改善应用的性能,减少延迟,提高吞吐量,同时确保系统的稳定性和资源的有效利用。 在上述示例中,我们看到了两个不同的配置,分别针对"Home/AppWeb配置"和"AppService配置"。这些配置展示了如何通过调整JVM启动参数来优化特定的问题。 1. `-Xms` 和 `-Xmx` 设置了Java堆的初始大小和最大大小。在示例中,它们都被设置为2000m,这意味着Java进程将分配至少2GB的内存,并且最多可以使用2GB。这有助于避免因内存不足导致的频繁GC或OOM。 2. `-XX:NewSize` 和 `-XX:MaxNewSize` 设定了新生代的大小。在上述配置中,新生代被设定为300m,用于存储新创建的对象。 3. `-XX:PermSize` 和 `-XX:MaxPermSize` 控制了永久代的大小,这个区域主要用于存放类的元数据。在Java 8之后,这部分被元空间(Metaspace)取代。 4. `-XX:+UseConcMarkSweepGC` 激活并发标记清除GC算法,它可以在应用运行的同时进行垃圾收集,减少停顿时间。 5. `-XX:CMSInitiatingOccupancyFraction` 是CMS GC的一个参数,表示老年代达到多大比例时触发垃圾回收,这里分别设为70%和80%。 6. `-Xloggc` 参数用于开启GC日志,便于分析和调试。 7. `-Dsun.rmi.*` 系列参数通常用于RMI(Remote Method Invocation)调用的超时设置,以优化远程服务交互。 8. `-XX:+DisableExplicitGC` 阻止代码中的System.gc()调用,防止不必要的手动垃圾收集。 9. `-XX:ThreadStackSize` 设置线程栈的大小,这里是128KB。 10. `-Dsun.rmi.server.exceptionTrace=true` 开启RMI服务器异常追踪,有助于定位错误。 以上只是一些基本的JVM调优参数,实际的调优过程可能还需要根据应用特性、硬件资源、负载情况等因素进行深入调整。全面了解和掌握这些参数,结合监控工具(如VisualVM、JConsole等)和性能分析,才能有效地进行JVM调优。更多关于Java 6的JVM选项可以参考提供的链接:http://kenwublog.com/docs/java6-jvm-option。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://profile-avatar.csdnimg.cn/bf03e3f8e84f43efa4e1467b110fc7d3_weixin_42187944.jpg!1)
- 粉丝: 21
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)