`
glinux
  • 浏览: 24990 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Java虚拟机的选项

阅读更多
Mac OS X的Java虚拟机除了具有标准的HotSpot虚拟机的选项之外,还支持很多非标准的选项(-X和-XX),本章列出了这些选项以及一些值得注意的例外事项。

请注意: 除非特别声明,否则在一个选项中指定的bytes(字节)都是作为参数。您也可以分别通过k或者m这两个字母来指定千个字节或者兆个字节(大小写都可以)。例如,下面的几种形式都是表示字节数:4194301,4096k,4096K,4m,和4M。

一般选项
-server
    在Mac OS X中没有特别的服务器虚拟机(server VM)。在激活java的时候可以使用 -server 选项,但这并不是启动另外的虚拟机,它还是启动客户虚拟机(client VM),只是这个虚拟机针对服务器的使用环境进行了调优。这些调优包括:

        * 在共享档案的生成过程中使用不同的类列表,这个列表中不包括GUI类(见“Mac OS X的Java共享档案”部分)。
        * 增加Java堆的尺寸。
        * 增加Eden代的内存空间的尺寸。
        * 打开线程的本地Eden垃圾收集器(garbage collection)。


-X
    显示一个非标准虚拟机选项的简要描述。
-Xbootclasspath:path
    指定一个目录以及JAR和ZIP档案的列表,作为搜索启动类的范围。列表中各项之间的分隔符为冒号(:)。
-Xfuture
    对类文件执行严格的格式检查。这个选项强制Java对是否遵守类文件规范做更加严格的检查,而缺省的检查只是基于Java 1.1.x的标准。您应该使用这个选项来对代码进行测试,以便确保这些代码在未来的Java版本中能够工作,这些未来的版本可能强制进行更为严格的类文件格式检查。
-Xprof
    把运行程序详细的行为分析数据发送给标准输出。在产品级的代码中不能使用这个选项。
-Xrs
    和-XX:+ReduceSignalUsage选项一样。
-XX:+ReduceSignalUsage
    正常情况下,Java响应SIGHUP,SIGINT,和SIGTERM信号。如果指定了这个选项,则Java会忽略这些信号,您要根据具体的需要在本地代码中实现这些信号的处理函数,同时还要在System.exit()中实现相关的关闭例程。
-XX:ReservedCodeCacheSize=size in bytes
    设置最大的代码缓存的大小,缺省情况下是32(32M)。
-XX:-PrintJavaStackAtFatalState
    缺省情况下,当本地代码崩溃时,Java会产生回溯(backtraces)信息。如果您在Java的错误报告中看到了崩溃的信息,则可以把这个选项关闭。

Mac OS X 专用选项
-Xdock:name=applicationName
    设定应用程序在Dock和菜单条上显示的名称。如果这个选项没有被设定,则缺省情况下Mac OS X会显示主类的全名。您只需要对那些从命令行或者JAR文件中启动的程序设定这个选项,那些可以双击的应用程序包则从Info.plist文件中读取正确的显示名。
-XX:+UseFileLocking
    这个选项用来激活Carbon文件的锁定功能,缺省情况下关闭。如果您的Java应用程序和一些文件相互作用,而这些文件同时又受到一些Carbon应用程序的影响,则您需要使用这个选项,它可以避免应用程序修改那些正在被别的程序访问的文件。

堆的尺寸
-Xmssize in bytes
    设定Java堆的初始尺寸,缺省尺寸是2097152 (2MB)。这个值必须是1024个字节(1KB)的倍数,且比它大。(-server选项把缺省尺寸增加到32M。)
-Xmnsize in bytes
    为Eden对象设定初始Java堆的大小,缺省值为640K。(-server选项把缺省尺寸增加到2M。)
-Xmxsize in bytes
    设定Java堆的最大尺寸,缺省值为64M,(-server选项把缺省尺寸增加到128M。) 最大的堆尺寸达到将近2GB(2048MB)。

请注意:很多垃圾收集器的选项依赖于堆大小的设定。请在微调垃圾收集器使用内存空间的方式之前,确认是否已经正确设定了堆的尺寸。

垃圾收集:内存的使用
-XX:MinHeapFreeRatio=percentage as a whole number
    修改垃圾回收之后堆中可用内存的最小百分比,缺省值是40。如果垃圾回收后至少还有40%的堆内存没有被释放,则系统将增加堆的尺寸。
-XX:MaxHeapFreeRatio=percentage as a whole number
    改变垃圾回收之后和堆内存缩小之前可用堆内存的最大百分比,缺省值为70。这意味着如果在垃圾回收之后还有大于70%的堆内存,则系统就会减少堆的尺寸。
-XX:NewSize=size in bytes
    为已分配内存的对象中的Eden代设置缺省的内存尺寸。它的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:MaxNewSize=size in bytes
    允许您改变初期对象空间的上限,新建对象所需的内存就是从这个空间中分配来的,这个选项的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:NewRatio=value
    改变新旧空间的尺寸比例,这个比例的缺省值是8,意思是新空间的尺寸是旧空间的1/8。
-XX:SurvivorRatio=number
    改变Eden对象空间和残存空间的尺寸比例,这个比例的缺省值是10,意思是Eden对象空间的尺寸比残存空间大survivorRatio+2倍。
-XX:TargetSurvivorRatio=percentage
    设定您所期望的空间提取后被使用的残存空间的百分比,缺省值是50。
-XX:MaxPermSize=size in MB
    长久代(permanent generation)的尺寸,缺省值为32(32MB)。

垃圾收集: 一般设定
-Xincgc
    Mac OS X不支持这个选项,不支持这种训练式的垃圾收集器。
-Xnoclassgc
    禁用类的垃圾收集。
-XX:+UseConcMarkSweepGC
    激活标志和清除同时进行的垃圾收集活动,这个选项对多处理器的计算机有效。
-XX:+UseParallelGC
    激活并行的垃圾收集活动,这个选项只对多处理器的计算机有效。
-XX:-DisableExplicitGC
    忽略代码中对System.gc()的显式调用。虚拟机仍然按照正常的机制进行垃圾收集。这个选项禁止在代码中强制执行垃圾收集。
-XX:+PrintTenuringDistribution
    打印初期代中已分配内存的对象占用内存时间的信息。

编译
-Xint
    只在解释(interperated)模式下运行虚拟机。如果使用这个选项,系统将不编译任何字节码。
-XX:CompileThreshold=value
    在编译开始前改变方法调用(程序分支)的数目,缺省值是1000。
-XX:-InlineUnreachableCalls
    缺省情况下,虚拟机对所有可能的代码进行方法内联处理(method inlining),以方便编译器进行优化。对这个选项进行设定会使较少的代码按照内联方法被编译。这样,那些正常情况下不会运行的代码,如例外处理,就不会被处理为内联代码,而只能在运行时进行解释。设定这个选项可能会大大降低性能。
-XX:+CITime
    显示有多少时间花在编译过的代码上。
-XX:+PrintCompilation
    在Java的方法被编译时,打印其的跟踪信息。

Threading
-XX:NewSizeThreadIncrease=size in KB
    允许您指定每个活动线程会增加多少初期对象空间。这个选项在调节由于线程增加而增加的分配率时可能会有用。它的缺省值为16(16 kilobytes)。
-XX:ThreadStackSize=size in KB
    改变线程栈的大小。缺省情况下,线程栈的大小就是操作系统所使用的栈的缺省大小。
-XX:+UseTLAB
    激活线程本地的分配缓冲区。 使用这个缓冲区将使线程任务繁重的应用程序的内存分配更加具有可扩展性,大大提高内存分配的性能。这个选项在多处理器的计算机和Mac OS X Server上缺省打开。

共享
-XX:+PrintSharedSpace
    打开共享的冗长输出。
-XX:-UseSharedSpaces
    关闭共享。
分享到:
评论

相关推荐

    认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别

    关于内存溢出报错的处理及解决方案: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemory 堆内存、非堆内存都描述

    《深入理解Java虚拟机》参数介绍

    Java启动参数共分为三类; 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容 非标准参数(-X) 默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 非稳定参数(-XX...

    Java复习题(附答案)

    Java复习题,附答案。选择题中红色选项为答案项。对于考试比较具有代表性。

    java程序双击运行-双击jar文件运行程序.pdf

    2、XP下的解决办法 1)安装好Java虚拟机后,打开桌⾯上"我的电脑",点击菜单"⼯具" "⽂件夹选项"。 2) 在"⽂件夹选项"设置窗⼝中切换到"⽂件类型"标签。找找看其中的⽂件扩展名有没有.jar,如果有,则选择.jar⽂件,...

    java-JVM.zip_permsiz

    java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别

    JAVA_API1.6文档(中文)

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    Java 1.6 API 中文 New

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...

    IBM SDK Java V8用户指南中文版(2019)

    IBM SDK Java Technology Edition V8用户指南中文版的PDF文档,共计364页,可以系统性的了解及学习IBM Java8及其相关的IBM Java虚拟机JVM,有助于优化项目和银行业相关实施运维工作 第1章:产品概述 第2章:迁移 ...

    JAVA上百实例源码以及开源项目

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    JAVA上百实例源码以及开源项目源代码

     QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新好友列表,响应用户双击的事件,并得到好友的编号,把聊天界面加入到管理类,设置密码保护等。 Java编写的网页版魔方游戏 内容索引:JAVA...

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    AppCode-vm-options:iOS AppCode IDE(JetBrains Co.)Java VM(虚拟机)选项可最大化IDE性能

    iOS AppCode IDE(JetBrains Co.)Java VM(虚拟机)选项可最大化IDE性能 取自并做了一些修改。 更好的RAM使用 如果您有很多未使用的RAM,则可以将其变成非常方便的事情,例如创建一个映射到RAM的独立卷并将其用于...

    JavaAPI1.6中文chm文档 part1

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    Java程序设计复习题.docx

    C、java虚拟机负责解释、运行字节码。 D、java内置对多线程的支持。 10.下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j ; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11.设有定义 float x=3.5f, y=4.6f, z=5.7f...

    java api最新7.0

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类和...

    安卓2.3上的Java模拟器

    下载后解压,里面有2个文件,libjbedvm....然后,就是关于安装java程序的问题了,把网络上下载的jar或jad放倒sd卡内,然后点击模拟器查看存储卡,就会出现安装程序的选项了,之后一直ok就行了 解压密码mn234@sina.com

    java jdk-api-1.6 中文 chmd

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

    Java性能调优

    由Java虚拟机的垃圾收集程序所引起的性能问题可通过指定两组调优选项来解决,这两组选项要么改进了垃圾收集程序的延迟,要么最小化了总执行时间...

    JavaAPI中文chm文档 part2

    java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...

Global site tag (gtag.js) - Google Analytics