http://blog.csdn.net/petehero/archive/2005/10/28/518261.aspx
JVM 提供了各种用于调整内存分配和垃圾回收操作的标准开关和非标准开关。其中的一些设置可以提高 IDE 的性能。
请注意,由于 -X
(尤其是 -XX JVM
)开关通常是特定于 JVM 或 JVM 供应商的,因此一般“不支持”这些开关。本部分介绍的开关可用于 Sun Microsystems J2SE 1.4.2 和 J2SE 1.5。其他 JVM 实现的用户可能需要删除这些开关以运行 IDE。
以下设置在大多数系统上将产生比缺省设置更好的设置性能。除了设置“永久区域”大小以外,这些开关在一定时间段内已成为 IDE 的缺省开关,因此应位于 netbeans.conf
文件中。
-
-J-Xverify:none
- 此开关关闭 Java 字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类。此开关缩短了启动时间,因此没有理由不使用它。
-
-J-Xms32m
- 此设置指示 Java 虚拟机将其初始堆空间设置为 32 MB。通过指示 JVM 最初应分配给堆的内存数量,可以使 JVM 不必在 IDE 占用较多内存时增大堆空间。
-
-J-Xmx128m
- 此设置指定 Java 虚拟机应对堆使用的最大内存数量。为此数量设置上限表示 Java
进程消耗的内存数量不得超过可用的物理内存数量。对于具有更多内存的系统可以添加此限制 - 128 MB 设置有助于确保 IDE 在内存量为 256
MB 的系统上能够可靠地执行操作。注意:
不要将该值设置为接近或大于系统的物理内存量,否则在主要回收过程中将导致频繁的交换操作。
-
-J-XX:PermSize=20m
- 此 JVM 开关不仅功能更为强大,而且能够缩短启动时间。该设置用于调整内存“永久区域”(类保存在该区域中)的大小。我们知道,所有 IDE
类均占用一定数量的内存,因此我们向 JVM 提示它将需要的内存数量。该设置消除了许多系统启动过程中的主要垃圾回收事件。SunONE Studio
或其他包含更多模块的 IDE 的用户可能希望将该数值设置得更高。
下面列出了其他一些可能对 NetBeans 在某些系统(不是所有系统)上的性能产生轻微或明显影响的 JVM 开关。尽管使用它们会产生一定的影响,但仍值得一试。
-
-J-XX:CompileThreshold=100
- 此开关将降低启动速度,原因是它指示 HotSpot 将很多其他方法编译为本地代码(与不使用此开关相比,这种编译速度更快)。其结果是提高了 IDE 运行时的性能,这是因为更多的 UI 代码将被编译而不是被解释。该值表示方法在被编译前必须被调用的次数。
-
-J-XX:+UseConcMarkSweepGC -J-XX:+UseParNewGC
- 如果垃圾回收频繁中断,则请尝试使用此开关。此开关导致 JVM 对主要垃圾回收事件(如果
在多处理器工作站上运行,则也适用于次要回收事件)使用不同的算法,这些算法“不会影响”整个垃圾回收进程。如果使用了 PermSize 开关,则还应向 netbeans.conf
文件中添加行 -J-XX:+CMSClassUnloadingEnabled
,以便启用类卸载(使用此回收器时,缺省情况下不启用类卸载)。注意:目前尚不确定此回收器是提高还是降低单处理器计算机的性能。
-
-J-XX:+UseParallelGC
- 某些测试表明,至少在内存配置相当良好的单处理器系统中,使用此回收算法可以将次要垃圾回收的持续时间减半。请注意,这是一个矛盾的问题 - 事实上此回收器主要适用于具有千兆字节堆的多处理器。尚无可用数据表明它对主要垃圾回收的影响。注意:
此回收器与 -J-XX:+UseConcMarkSweepGC
是互斥的
。可以在性能 Web 站点上找到
支持使用此算法的度量数据。
分享到:
相关推荐
其中特别提到了一个名为JProfiler的工具,它是一个强大的Java性能分析器,对理解和调整JVM的运行有着极大的帮助。 **JProfiler** 是一款功能全面的Java剖析工具,它可以提供详细的内存分析、CPU性能分析、线程监控...
运行程序时,jvm会调整永久域的大小以满足需要。每次调整时,jvm会对堆进行一次完全的垃圾收集。 使用-XX:MaxPerSize标志来增加永久域搭大小。在WebLogic Server应用程序加载较多类时,经常需要增加永久域的最大值...
在深入探讨JVM的-XX参数之前,我们首先要明白,这些参数主要是用于微调JVM的行为,适用于开发者或系统管理员在特定场景下进行性能优化或问题诊断。下面,我们将详细介绍标题和描述中提到的一些关键-XX参数及其功能。...
其他一些 JVM 开关也可以影响 NetBeans 的性能,例如: * `-J-XX:CompileThreshold=100`:将会延长启动时间,因为 HotSpot JVM 会以更快的速度将更多的方法编译到本地代码中。 * `-J-XX:+UseConcMarkSweepGC` 和 `-...
`top`命令还支持多种内部命令,如`s`可调整屏幕刷新频率,`l`开关第一部分的第一行信息显示,`t`开关任务和CPU信息显示,`m`开关内存和交换分区信息显示,`N`、`P`、`M`分别按PID、CPU使用率和内存使用率排序进程,`...
在Linux系统管理中,了解CPU和内存的使用情况至关重要,这有助于分析系统性能和瓶颈。在CentOS等Linux发行版中,我们可以使用内置的命令工具来...在互联网环境中,合理地管理和优化资源使用对提升服务器性能至关重要。
解决这些问题通常需要检查日志文件,确定错误的具体原因,并采取相应措施,如清理磁盘空间、以管理员权限运行安装程序,或调整与冲突软件的设置。 接下来,我们转向BurpSuite。BurpSuite是一套集成的渗透测试工具,...
- 利用JDK 17的性能改进,优化应用程序的运行时性能,如调整JVM参数以充分利用新特性。 总的来说,JDK 17作为Java开发的一个重要里程碑,带来了许多创新和改进,旨在提高开发者的工作效率,增强代码的安全性和性能...
5. **JVM调优**:讲解了如何通过监控工具(如JConsole、VisualVM等)进行性能分析,并提供了一些实战调优技巧,包括堆大小设置、垃圾收集器选择、方法区参数调整等。 6. **并发与多线程**:讨论了JVM中的线程管理,...
5. **JVM调整**:JDK 14还提供了一些新的JVM选项,使得开发者可以更好地调整和优化应用程序的性能。 6. **兼容性**:尽管引入了许多新特性,但JDK 14仍然保持与旧版本的大部分API兼容,以确保现有代码库的平滑过渡...
1. **代码优化**:通过编译器优化技术提高Java代码的执行效率,例如使用更高效的编译选项或启用特定的编译器优化开关。 2. **垃圾回收机制**:对于资源有限的嵌入式设备来说,垃圾回收是一项关键的技术。可以通过...
4. **垃圾收集器与性能优化**:JDK 16可能包含对垃圾收集器的改进,比如ZGC(Z Garbage Collector)或Shenandoah,以及JVM性能的其他优化。 5. **内存模型和并发**:Java的内存模型和并发API,如`java.util....
JDK 18是Java的一个重要版本,可能包含新特性、增强功能和错误修复,以提升开发者的工作效率和程序性能。 1. **Java版本和更新**:每个Java版本都有其特定的特性,JDK 18是在Java SE(标准版)平台上的一个中期版本...
在性能优化方面,针对长连接,陌陌引入了动态调整策略,以平衡压力、避免资源浪费和提升整体承载能力。此外,还解决了GC问题,以防止因垃圾回收导致的服务中断。对于丢消息问题,陌陌利用msg-ack机制进行解决,但...
开发者可以通过调整JVM参数来适应不同的应用场景,如内存分配、线程调度等。 **5. 安全性** Java的沙箱模型和定期的安全更新确保了JDK-17在处理网络通信和敏感数据时的安全性。开发者应定期更新JDK以获得最新的...
此外,为了确保最佳性能,开发者应考虑调整JVM的内存参数,如-Xms和-Xmx,以适应应用程序的需求。 总的来说,JDK17-Linux-Arm64是为Linux Arm64平台提供的一个强大且现代化的Java开发环境,它带来了诸多新特性和...
- 调整JVM参数以优化内存分配和垃圾回收性能。 3. **并发编程** - 研究`ExecutorService`和`ThreadPoolExecutor`,它们是管理线程池的有效工具。 - 使用`Future`和`Callable`接口来获取异步计算的结果。 - 高级...
- 如果遇到内存溢出,可以调整JVM的堆大小。 - 当出现类找不到错误时,检查类路径设置是否正确。 - 若遇到性能瓶颈,可以使用JVisualVM或其他性能分析工具进行诊断。 总之,"jdk1.7.0_80_x86_32.zip" 文件提供了...
其中可能包括对JVM、类库、编译器以及其他组件的优化和调整。 在安装"jdk-7u79-windows-x64.exe"时,通常会包括以下几个步骤: 1. 下载并解压RAR文件。 2. 运行安装程序,按照向导指示进行安装。 3. 在系统环境变量...