Eclipse中JVM参数的配置方式
1. 通过eclipse.ini设置jvm参数,eclipse启动后即生效,如下:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx512m
-Xmn128M
-XX:PermSize=64M
-XX:MaxPermSize=256M
-XX:+DisableExplicitGC
注意:这里需要注意一下的是,经常我们通过eclipse.ini设置过jvm参数后,eclipse就无法启动,报类似下面的错
这里如果能排除eclipse.ini文件编写格式和规范的问题以外,一般都是因为参数本身设置的不合理。比如-Xms的值大于-Xmx, 或者-XX:PermSize的值大于-XX:MaxPermSize,或者-Xmx的值、-XX:MaxPermSize的值、其他进程和系统占用的内存、和硬件占用的内存的总和超过了实际物理内存。 所以同样的jvm设置,在有些人的机器上eclipse可以启动,在有些人的机器上eclipse可能就无法启动。
2. 为某个单独的测试用例或者测试类配置jvm参数,运行用例时开始生效,如:
在需要运行的测试用例上右键选择Run As => Run Configurations => 在打开的Run Configurations中找到Junit一栏,在Junit一栏下找到自己的测试用例,如果没有则双击Junit=》打开Arguments Tab,在VM arguments一栏中输入需要设置的jvm参数=》点击Run即可。如下:
3. 为eclipse加载的某个jdk/jre配置jvm参数,运行测试用例时生效。
与2的区别是,该参数配置是全局的,运行用例时,不需要为每一个测试用例单独配置。
Eclipse中选择Window=>Preferences=>Java=>Installed JRES=>选中安装的jdk或者jre并进行编辑=》在Default VM Arguments中输入需要设置的jvm参数=》点击Finish完成设置。如下:
对运行在TOMCAT或者JBOSS中的WEB应用设置JVM参数
这个可以通过环境变量JAVA_OPTS进行设置,类似于后面提到的MAVEN_OPTS和ANTX_OPTS。这里不详述了。
Maven工程的JVM配置方式
1. 为Maven运行配置JVM参数
这种需求比较少见,一般使用默认的JVM配置即可。如果需要,可以通过设置环境变量来满足需求,如:
Windows下添加环境变量MAVEN_OPTS的value为-Xms1024m -Xmx1024m -Xss1m
Linux下可修改.profile或者.bash_profile文件,并做如下设置:
export MAVEN_OPTS=”-Xms1024m -Xmx1024m -Xss1m”
(注意:这里需要使用双引号或者单引号)
2. 为Maven fork出的新的子进程配置JVM参数(比如通过命令行mvn test运行测试用例时)
Maven运行测试用例时,是通过调用maven的surefire插件并fork一个子进程来执行用例的,所以这里可以在surefire插件的配置中直接添加jvm参数,如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>pertest</forkMode>
<argLine>-Xms1024m -Xmx1024m -Xss1m </argLine>
</configuration>
</plugin>
注意:通过MAVEN_OPTS方式设置的JVM参数对于fork出的子进程是无效的,所以对于通过mvn test来运行测试用例,需要单独配置。
Antx工程的JVM配置方式
1. 为ANTX运行配置JVM参数
这里和给MAVEN运行配置JVM参数的方式类似,可以通过设置环境变量ANTX_OPTS来满足需求,如:
Windows下添加环境变量ANTX_OPTS的value为-Xms1024m -Xmx1024m -Xss1m
Linux下可修改.profile或者.bash_profile文件,并做如下设置:
export ANTX_OPTS=”-Xms1024m -Xmx1024m -Xss1m”
(注意:这里需要使用双引号或者单引号)
2. 为ANTX fork出的子进程配置JVM参数(比如通过命令行antx test运行测试用例时)
通过Antx运行测试用例,其实和Maven运行测试用例非常类似,都是fork一个新的子进程来完成目标,maven调用的是surefire插件,而antx调用的是自己的test插件。但是JVM的设置方式却有所不同。这里需要特别注意的是,antx没有直接的设置test子进程的JVM参数的方式,但是有一个默认值为-Xmx256m. 如果这个不满足需求,可以通过修改antx源代码的test插件的源配置来达到目标,操作步骤如下:
1) 找到antx的源代码的plugins/antx-test目录的plugin.jelly配置,找到如下配置的地方,修改maxmemory的最大默认配置,如果需要设置其他参数,可通过jvmarg配置项进行设置,如图:
2)重新build antx工程即可
分享到:
相关推荐
然而,最佳的JVM参数配置往往依赖于具体的应用场景和硬件配置,因此,持续的性能监控和调优是必不可少的。希望本文能为读者提供一个深入理解JVM参数配置的起点,引导大家探索更高级的性能优化技术。
### JVM配置参数详解 在Java虚拟机(JVM)的运行过程中,通过一系列的命令行参数,我们可以调整其性能和行为。以下是对JVM部分关键配置参数的详细解析,这些参数能够帮助我们优化应用程序的执行效率,管理内存,...
### 常用JVM配置参数详解 #### 一、概述 Java虚拟机(JVM)是运行Java程序的核心环境,其性能的优劣直接影响到Java应用程序的执行效率...在实际应用中,建议根据具体的应用场景灵活调整JVM参数,以达到最佳的运行效果。
这是一个非常实用的工具,能够帮助快速地进行JVM参数配置。 3. **JVM调优“标准参数”的陷阱**:R大的文章详细介绍了在不同JDK版本下JVM调优过程中可能遇到的一些陷阱。尽管该文章最初是在JDK 6时撰写的,但是其中...
#### 如何获取JVM参数配置信息 可以通过命令行方式获取JVM的所有参数配置信息。例如,在Windows平台上,通过`cmd`进入`J2SDK`安装目录下的`bin`目录,运行以下命令: ```batch java -X ``` 这会显示包括`java.exe...
"jvm优化参数配置"是确保Tomcat稳定运行的关键环节,能够提高应用的响应速度,减少内存泄露,提升系统整体性能。以下是对JVM参数优化的详细解释: 1. **内存配置**: - **堆内存(Heap Memory)**:分为新生代...
总结起来,深入理解JVM内核,熟练掌握诊断技巧,并合理调整JVM配置参数,是每一个Java开发者必备的技能。通过本教程的学习,你将能够运用这些知识有效地提升应用性能,解决实际工作中的各种挑战。
以下是对JVM参数配置的详细说明: 1. **堆内存配置**: - `-Xms`:设置JVM启动时分配的初始堆内存大小。 - `-Xmx`:设置JVM可使用的最大堆内存大小。 - `-Xmn`:设置年轻代(Young Generation)的大小,年轻代是...
**: 显示帮助信息,介绍可用的所有JVM参数。 - 示例:`-help` 3. **-fullversion**: 输出JVM的完整版本信息。 - 示例:`-fullversion` 4. **-showversion**: 显示JVM的版本信息。 - 示例:`-showversion` 5. *...
### JVM内存参数调优详解 #### 一、概述 Java虚拟机(JVM)是执行Java字节码的软件环境,为了提高Java程序的性能和稳定性,合理调整JVM的内存参数至关重要。根据Java启动参数的不同分类,我们可以将其分为标准参数...
本篇将探讨几个核心的JVM参数及其在不同场景下的优化策略。 首先,我们关注的是高吞吐量的调整。`UseParallelGC` 和 `UseParNewGC` 是两种用于提高吞吐量的垃圾收集器。`UseAdaptiveSizePolicy` 是一种自动调整策略...
JVM参数配置是优化Java应用程序性能的关键环节,通过调整这些参数,我们可以控制JVM的行为,包括内存分配、垃圾收集、类加载等方面。在本文中,我们将深入探讨Java虚拟机的参数配置及其对程序性能的影响。 首先,...
### 如何配置JVM参数,实现高效调优 在IT行业,Java虚拟机(JVM)作为执行Java程序的核心环境,其性能优化是确保应用程序稳定、高效运行的关键。本文将深入探讨如何合理配置JVM参数,以达到最优的系统表现。 #### ...
2. **监控和测试**:使用如JVisualVM等工具监控应用程序的运行状态,并通过多次测试来确定最佳参数配置。 3. **参考官方文档**:Oracle提供的官方文档包含了详细的JVM参数解释和推荐配置,是获取专业建议的重要资源...
Java虚拟机(JVM)作为执行Java程序的核心组件,在不同的应用场景下,其性能表现至关重要。特别是在大型应用或企业级服务中,JVM的非标准参数配置对于提升系统性能与稳定性具有决定性作用。这些参数通常涉及内存管理...