`

不同场景下JVM参数的配置方式

    博客分类:
  • Java
阅读更多

一、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工程即可

 

原文摘自:http://www.taobaotest.com/blogs/1672

  • 大小: 16.8 KB
  • 大小: 15.2 KB
  • 大小: 23.5 KB
  • 大小: 2.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics