当前位置:  技术问答>java相关

java启动参数的问题

    来源: 互联网  发布时间:2015-01-10

    本文导语:  用java -?命令可列出如下选项     -client       to select the "client" VM     -hotspot      is a synonym for the "hotspot" VM  [deprecated]     -server       to select the "server" VM     -classic      to select the...

用java -?命令可列出如下选项
    -client       to select the "client" VM
    -hotspot      is a synonym for the "hotspot" VM  [deprecated]
    -server       to select the "server" VM
    -classic      to select the "classic" VM
                  If present, the option to select the VM must be first.
                  The default VM is -client.

用java -X命令可列出如下选项
    -Xmixed           mixed mode execution (default)
    -Xint             interpreted mode execution only
    -Xbootclasspath:
                      set search path for bootstrap classes and resources
    -Xbootclasspath/a:
                      append to end of bootstrap class path
    -Xbootclasspath/p:
                      prepend in front of bootstrap class path
    -Xnoclassgc       disable class garbage collection
    -Xincgc           enable incremental garbage collection
    -Xbatch           disable background compilation
    -Xms        set initial Java heap size
    -Xmx        set maximum Java heap size
    -Xss        set java thread stack size
    -Xprof            output cpu profiling data
    -Xrunhprof[:help]|[:=, ...]
                      perform JVMPI heap, cpu, or monitor profiling
    -Xdebug           enable remote debugging
    -Xfuture          enable strictest checks, anticipating future default
    -Xrs              reduce use of OS signals by Java/VM 

    请高手解释一下这些参数的意思,哪几个最有用,应该在什么情况下使用,对程序性能有什么影响?



|
java -server 用在服务型的程序,如SOCKET SERVER,对安全和稳定性做了一定优化
java -client 是默认选择,速度快,占用资源较少

在win下,SUN JDK 新版本JVM默认时,可以使用64M, 旧版本是16M 。 当然你也可以通过指定参数,来修改内存配置
-Xms        
-Xmx        
-Xss        

详细资料可以参考  forum.java.sun.com 上的相关栏目,内容很全!

|
透过 Java 参数来改善 Java 效能 (艾群科技 萧松瀛)

作者  : 艾群科技 萧松瀛 
   
  我们都知道, Java 在执行的时候会吃掉不少记忆体,而当记忆体不够
用的时候, JVM 会向系统要求更大的记忆体来使用。但是实际上对於 Ja
 va 来说,我们会发现资料可以存在许多不同的地方,其中有两个重要的
是  Heap 以及 Stack 。这两者有什么差别,我们在以後会提到,但是在
这之前,我们先来看一个程式:  
   
  public class testHeap 
  { 
      public static void main(String argv[]) 
      { 
          StringBuffer sb = new StringBuffer(); 
          long starttime; 
          long endtime; 
          starttime = System.currentTimeMillis(); 
          for(int i=0; i <=100000; i++) 
          { 
              sb.append(i).append("hello").append(i); 
              if(i % (100000/2) == 0) 
              { 
                 System.out.println(Runtime.getRuntime().totalMe
 mory()); 
              } 
          } 
          endtime = System.currentTimeMillis(); 
         System.out.println("Time: "+(endtime-starttim
 e)); 
      } 
  } 
   
  执行的结果如下 
   
  C:javatmp> java testHeap 
  2031616 
  5578752 
  10498048 
  Time: 651 
   
 在这里,我们看到 totalMemory 不断的上升,当然,这是正常现象,但
是实际上我们可以控制 JVM 一开始就抓取的记忆体大小,这样的好处是 
 JVM 一开始就抓取了大量的 Heap 。怎么做呢? 我们先用 java -X 来看
看他有哪些额外的参数可以下,没错,我看到我感兴趣的几个参数  
   
      -Xms <size>         set initial Java heap size 
      -Xmx <size>         set maximum Java heap size 
      -Xss <size>         set java thread stack size 
   
 接著,我想要让 JVM 一开始就抓取大量的记忆体,因此我选择 -Xms 这
个参数,底下是我的执行结果:  
   
  C:javatmp> java -Xms50000000 testHeap 
  49741824 
  49741824 
  49741824 
  Time: 480 
   
 这时候我们看到 total 的记忆体维持不变,原因很简单,因为 testHea
p 使用记忆体的量,并没有超过我们一开始抓到的量。但是有一个很有趣
的现象是回圈内的时间已经更短了,换一个角度来说,就是程式跑起来更
有效率。这种以记忆体空间来换取执行时间的方式,也许并不是最棒的校
调方法,但是却是一个在不修改程式码的方式下,提高效率的方法。当然
,我们也可以限制记忆体的最大用量,参数则为 -Xmx 。一般说来,我并
不建议您设定 -Xmx ,原因很简单,因为一旦您设定了 -Xmx ,那么 JVM
  所抓取的记忆体量到了这个值之後,便不会再抓取记忆体,也就是说您
的程式将无法执行,我们看看底下的结果  
   
  C:javatmp> java -Xmx5000000 testHeap 
  2031616 
  5578752 
 Exception in thread "main" java.lang.OutOfMemoryError
  
   
  C:javatmp> 


    
 
 

您可能感兴趣的文章:

  • java显示当前运行时的参数(java运行参数)
  • java类中的方法就是函数了,函数参数全是传值了,传址参数怎样表示?
  • 各位高手:java是不是不支持缺省参数。为什么我在写一个类的构造函数时,加入缺省参数出现错误。
  • java中函数的缺省参数怎么定义?
  • JAVA里面的方法是怎么样把参数值返回?
  • 运行 java -native BlackBox 说没有-native 这个参数,怎么办?
  • gcc 编译java需要什么参数?
  • 高分请教: 如何用Java调用带多个参数的EXE文件?
  • 在java里是怎么实现一个方法返回多个参数的?
  • Java命令行参数处理类库 Commons CLI
  • Java 中的命令行参数怎么用代码行来表示?
  • java中如何使参数传递按传"引用"方式进行?
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • 怎样在一个JAVA应用程序里,向一个SERVLET发出HTTP请求(带参数)???
  • java的基本型数据,比如int,char在函数参数中能否“按址传递”
  • 请问在java里传递方法的可选参数是如何实现的
  • java中方法调用参数的值不能改变吗?
  • 在java application中,2个窗体间如何传递参数?
  • 请问如何在java 命令的参数中指定JVM 的最大和最小内存
  • java可变参数使用示例
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • lunix下,用java在代码中启动另外一个进程遇到的问题,新启动的进程被阻塞.
  • 高手指点:不用JNI,如何在Java进程中新起一个JVM并在其中启动另一个Java进程。
  • 紧急问题:我启动一个java程序之后用ps一看,为和显示我启动了多个程序?然后我kill-9第一个pid之后,又全部没了
  • 在java中如何启动非java的可执行程序?
  • 问一个自启动java程序的问题
  • 如何启动和关闭一个进程(java写的)。
  • Java启动器 WinRun4J
  • 怎样用Java调用window命令或启动其它程序?
  • linux下安装java环境,无法启动系统了.
  • 请问如何通过telnet的方式启动服务器(solaris)上的用.sh角本方式启动java写的应用程序,在退出telnet时服务器上的应用程序不会退出?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 菜鸟的问题:java与java script 的异同??
  • java新手的问题,java高手帮忙...
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 请各位java高手几个java有关的问题?
  • java.sql.Date和java.uitl.Date的问题?
  • 问大哥大姐们个问题啊,小第编了自己的第一个JAVA问题。用JAVAC编译能通过啊!可是用JAVA不能执行啊!
  • 最入门级的java问题,如何运行HelloWorld.java
  • 请教一些JAVA的基本问题,初学JAVA有些迷糊,帮帮忙!总迷糊实在受不了了!
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 关于JAVA应用程序(Java Application)的deliver问题
  • 请Linux 和Java 的高手回答:java JDK1.3.1 在红旗Linux Desktop 2.4 的问题,一定给分。
  • 一个极其菜的问题:JAVA,VISUAL J++,JAVA SCRIPT,EJB,它们之间到底有什么关系,谢谢!
  • 我的Javac没有问题,但是java有问题,
  • 一个JAVA继承的问题(Thinking in JAVA里的一个例子)
  • 刚学习Java,请教关于Java的Application代码编写问题。
  • 我所学的是计算机,现在想学JAVA,对JAVA绝对是初学!!!可以交流的留下个地址。肯定给分,不过非完分后就是问题,问题,问题了;)有留E-mail至少1分
  • 两个非常简单的问题,给40分 (才学2天JAVA人的问题)
  • 问个简单的低级又很怪的问题,我在编译*.java的问题。
  • java学习的问题<问题解决立即结贴>?
  • 我是学pb的,有一个问题想请教各位java的朋友,j2ee平台是什么啊?如果要用这个平台的开发pb的话是否要学java??
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3