精华内容
下载资源
问答
  • %JAVA_HOME%/jre/bin/client/jvm.dll %JAVA_HOME%/jre/bin/server/jvm.dll  Jvm动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但...

    看看你下面的这两个文件,是不是尺寸差别很大?
    %JAVA_HOME%/jre/bin/client/jvm.dll
    %JAVA_HOME%/jre/bin/server/jvm.dll
      Jvm动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加载速度较快,server版本加载速度较慢但运行起来较快。
      让Tomcat 使用Server版本的jvm吧 在开始菜单 tomcat5 ->tomcat config的java属性中 有一项 jvm路径指向server目录下的jvm就行了。
      启动速度对比一下,在我的C4.17 512M 的机器上client 版本一般在8s-16s内启动完成 server版本 在21s-26s左右启动完成。


      更改默认java.exe调用的jvm.dll,这个由jvm.cfg决定。
    编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg   
    里面第一行写的是 -client 默认就是client版本 ,把第二行的-server KNOWN 放到第一行,如下面所示
    -server KNOWN
    -client KNOWN
    -hotspot ALIASED_TO -client
    -classic WARN
    -native ERROR
    -green ERROR  
    改完保存,然后看看默认版本:
    C:\java -version
    java version "1.4.2_07"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b05)
    Java HotSpot(TM) Server VM (build 1.4.2_07-b05, mixed mode)
    看到没有 Server VM 字样?是不是很酷啊!,小心机器不够快,启动等得你疯掉 :)

     

    JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM如果不显式指定是-Server模式还是-client模式,JVM还能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。

      JVM工作在Server模式可以大大提高性能,但应用的启动会比client模式慢大概10%。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存。

      当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。

      JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。

      启动client jvm 和server jvm的方式如下:
      java -client yourclass
      java -server yourclass

      更改默认java.exe调用的jvm.dll,这个由jvm.cfg决定。 

      32位的虚拟机在目录JAVA_HOME/jre/lib/i386/jvm.cfg,

      64位的在JAVA_HOME/jre/lib/amd64/jvm.cfg, 目前64位只支持server模式。

      改变32位的虚拟机java.exe默认调用的jvm.dll。

      编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg
      里面第一行写的是 -client 默认就是client版本 ,把第二行的-server KNOWN 放到第一行, 如下面所示
      -server KNOWN
      -client KNOWN
      -hotspot ALIASED_TO -client
      -classic WARN
      -native ERROR
      -green ERROR
      改完保存,然后看看默认版本:
      C:\java -version

    展开全文
  • IDEA 如何配置JVM虚拟机启动参数

    千次阅读 2020-06-27 22:32:16
    IDEA 如何配置JVM虚拟机启动参数 在读《深入理解Java虚拟机》中有个IDE设置JVM启动参数(VM Arg),小编用的IDEA不知道如何设置,所以写个博客记录一下 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来...

    IDEA 如何配置JVM虚拟机启动参数

    在读《深入理解Java虚拟机》中有个IDE设置JVM的启动参数(VM Arg),小编用的IDEA不知道如何设置,所以写个博客记录一下

    在这里插入图片描述
    下面的两个箭头代表两个方法,二选一即可
    请添加图片描述

    请添加图片描述

    展开全文
  • IDEA 设置启动 JVM 参数

    2020-07-20 16:55:00
    设置 IDEA 启动参数 如何让 IDEA 运行如飞? 试试先设置下 JVM 运行参数。

    一、设置方式

    1. 通过 IDEA 设置

    在这里插入图片描述

    2. 编辑配置文件

    IDEA 安装目录 / bin 目录,其中有两个 vmoptions 文件,针对不同的 JDK 进行配置

    二、参数说明

    1. 通用参数说明

    参数 说明
    -Xms 初始化堆内存大小, eg. -Xms1G
    -Xmx 堆内存最大值,eg. -Xms1G,通常与 -Xms 设置相同的值
    -XX:ReservedCodeCacheSize “代码缓存”,它是用来存储已编译方法生成的本地代码。代码缓存确实很少引起性能问题,但是一旦发生其影响可能是毁灭性的。如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only 模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。就像其他内存区域一样,我们可以自定义代码缓存的大小。它们的参数都是字节值。eg. -XX:ReservedCodeCacheSize=240m
    -XX:InitialCodeCacheSize “代码缓存” 初始大小,eg. -XX:InitialCodeCacheSize=240m
    -XX:+UseCodeCacheFlushing 如果代码缓存不断增长,例如,因为热部署引起的内存泄漏,那么提高代码的缓存大小只会延缓其发生溢出。为了避免这种情况的发生,当代码缓存被填满时让JVM放弃一些编译代码。通过使用这个参数,我们至少可以避免当代码缓存被填满的时候 JVM 切换到 interpreted-only 模式, 该值默认是开启的
    -XX:+AutoBoxCacheMax JVM 在加载 Integer 这个类时,会优先加载静态的代码。当 JVM 进程启动完毕后, -128 ~ +127 范围的数字会被缓存起来,调用 valueOf 方法的时候,如果是这个范围内的数字,则直接从缓存取出。eg. -XX:AutoBoxCacheMax=20000
    -XX:+AlwaysPreTouch JAVA 进程启动的时候,虽然我们可以为 JVM 指定合适的内存大小,但是这些内存操作系统并没有真正的分配给 JVM ,而是等 JVM 访问这些内存的时候,才真正分配,这样会造成以下问题。 GC 的时候,新生代的对象要晋升到老年代的时候,需要内存,这个时候操作系统才真正分配内存,这样就会加大 young gc 的停顿时间; 可能存在内存碎片的问题。可以在 JVM 启动的时候, eg. -XX:+AlwaysPreTouch
    -XX:PermSize JVM 初始分配的非堆内存,就是永久代,JDK 1.7 适用。 eg. -XX:PermSize=64M
    -XX:MaxPermSize JVM 最大允许分配的非堆内存,按需分配, JDK 1.7 适用,eg. -XX:MaxPermSize=128M
    -XX:MetaspaceSize 初始元空间大小,达到该值就会触发垃圾收集进行类型卸载,同时 GC 会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过 MaxMetaspaceSize 时,适当提高该值, JDK 8 适用。eg. -XX:MetaspaceSize=128M
    -XX:MaxMetaspaceSize 最大元空间,默认是没有限制的,JDK 8 适用。 eg. -XX:MaxMetaspaceSize =128M

    2. 使用 CMS 垃圾回收

    参数 说明
    -XX:+UseConcMarkSweepGC 采用 CMS 垃圾回收机制

    3. 使用 G1 垃圾回收

    参数 说明
    -XX:+UseG1GC G1 垃圾回收机制
    -XX:+UseStringDeduplication G1垃圾回收器的时候,通过该参数我们可以通过删除重复的字符串,只保留一个char[]来优化堆内存。

    三、样例

    1. 采用 CMS 垃圾回收

    -server
    -Xms1024m
    -Xmx2048m
    -XX:MaxPermSize=1024m
    -XX:ReservedCodeCacheSize=512m
    -XX:+UseConcMarkSweepGC
    -XX:+UseCodeCacheFlushing
    -XX:SoftRefLRUPolicyMSPerMB=50
    -ea
    -Dsun.io.useCanonCaches=false
    -Dsun.awt.keepWorkingSetOnMinimize=true
    -Djava.net.preferIPv4Stack=true
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -Djsse.enablesSNIExtension=false
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Dfile.encoding=UTF-8
    // -Duser.name=
    

    2. 采用 G1垃圾回收配置

    -server
    -XX:MetaspaceSize=128M 
    -XX:MaxMetaspaceSize=512M 
    -XX:+AlwaysPreTouch 
    -Xms128m
    -Xmx4g
    -XX:ReservedCodeCacheSize=512m
    -XX:+UseG1GC
    -XX:+UseStringDeduplication
    -XX:AutoBoxCacheMax=20000
    -ea
    -Dsun.io.useCanonCaches=false
    -Dsun.awt.keepWorkingSetOnMinimize=true
    -Djava.net.preferIPv4Stack=true
    -Djdk.http.auth.tunneling.disabledSchemes=""
    -Djsse.enablesSNIExtension=false
    -XX:+HeapDumpOnOutOfMemoryError
    -XX:-OmitStackTraceInFastThrow
    -Dfile.encoding=UTF-8
    // -Duser.name=
    

    四、参考

    Intellij IDEA 设置启动JVM参数

    展开全文
  • tomcat设置参数需要在tomcat/bin目录下的catalina.sh中添加jvm的参数 springboot 在启动jar的时候添加jvm参数即可

    tomcat设置参数需要在tomcat/bin目录下的catalina.sh中添加jvm的参数
    springboot 在启动jar的时候添加jvm参数即可

    展开全文
  • Eclipse里面如何设置jvm启动参数

    万次阅读 2014-11-17 11:20:27
    如果是在windows下,点击/bin/startup.bat文件启动的,需要在catalina.bat里面加入以下设置: set JAVA_OPTS=-XX:PermSize=128M -XX:MaxPermSize=256m -Xms256m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+...
  • 1.如何得到JVM启动以后的pid进程号? 2.当前操作系统用户的groupId组号,userId用户号? 3.还有能否根据当前userId得到当前用户密码?
  • jvm

    2020-08-21 16:47:22
    初步了解jvmjvm为什么jvm很重要世界上有多少种jvm为什么叫虚拟机jvm作用跨平台jdk与jre目录自动内存管理(垃圾回收)jvm如何启动jvm总体结构 jvm 为什么jvm很重要 1.任何java上的技术问题,都可以追溯到jvm上. 2....
  • JVM-如何设置JVM的参数

    2019-09-13 10:25:34
    如何启动系统的时候设置 JVM 参数 新生代、老生代、永久代的概念JVM-JVM中内存区域划分这一章中讲过,每执行一个方法,该方法都会有一个栈帧进入 Java 虚拟机栈,栈帧中保存着方法中的局部变量、返回值地址等...
  • Run_Configurations.txt 这个文件中的内容是告知开发者如何设定JFinal启动项目时的参数,此文件中的内容不会被加载,开发者具体操作方法如下: 1:点击eclipse工具栏上的debug或run图标旁边的小三角形图标,会弹出...
  • 2、如何进行 JVM 的设置? 找到 tomcat 在本地电脑中的安装目录,进入这个目录,然后进入bin目录中,在window环境下找到bin目录中的catalina.bat,在linux环境下找到catalina.sh。编辑该文件,找到JAVA_OPTS这个...
  • 如何设定tomcat启动JVM内存大小,以免出现java lang OutOfMemoryError
  • 我们都知道垃圾回收器是JVM自己启动的,我们一般不调用它,可以使用system.gc()调用垃圾回收器,但是也不一定什么时候才会执行 在JVM规范中并没有规定内存回收的动作,由gc收集器自己决定,那么JVM如何发起内存回收...
  • 如何设置Java虚拟机JVM启动内存参数

    千次阅读 2017-03-23 14:38:00
    Tomcat默认的Java虚拟机JVM启动内存参数大约只有64MB或者128MB,非常小,远远没有利用现在服务器的强大内存,所以要设置Java虚拟机JVM启动内存参数。具体设置方法为: Tomcat修改TOMCAT_HOME/bin/catalina.bat,在...
  • 如何获取JVM的dump文件

    2019-01-15 09:47:54
    如何获取JVM的dump文件 获取JVM的dump文件的两种方式 JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: -XX:HeapDumpPath=/home/liuke/jvmlogs/ 发现程序...
  • jvm启动流程

    2019-06-26 17:01:21
    JVM对于初学者来说,一直比较难懂,最根本原因是它不够直观。 自己写了段代码,也正常运行了,都OK,没...再回答问题之前,先看看我们是如何启动Java的。 1.我们在IDEA或者eclipse上面都有启动java程序的图标,如下...
  • 教你如何配置JVM

    2019-11-01 11:25:46
    最常见的JVM配置当属内存分配,因为在绝大多数情况下,JVM默认分配的内存可能不能满足我们的需求,特别是在生产环境,此时需要手动修改Tomcat启动时的内存参数分配。 7.1 JVM内存模型图 7.2 JVM配置选项 windows...
  • 本文演示JBoss 7/WildFly Domain 模式如何配置 Server 启动JVM 参数:如下编辑Domain 模式配置文件 domain/configuration/domain.xml,在 部分添加如下配置项:
  • 如何分析jvm dump 内存日志

    万次阅读 2013-12-06 14:31:01
    如何dump出jvm日志。 1. 在jvm启动的参数中,新增 jvm参数。这样在发生jvm 内存溢出时,就会直接dump出java.hprof 文件了。
  • linux版本activeMQ 如何修改JVM网上有了很多,这里就不再赘述 windows 启动的脚本在这里 D:\Program Files\activeMQ\apache-activemq-5.14.0-hub1\bin\win32  但并不像linux是修改启动脚本,windows是修改...
  • JVM启动参数

    2021-01-31 10:51:54
    由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置不同(主要cup个数,内存不同),所以使用的GC种类也会不同(如何选择见...
  • create_vm函数启动虚拟机 add函数,将线程加入到线程队列 create函数,创建虚拟机线程“VMTHread” vm_init——globals函数,初始化全局数据结构 init_globals函数,初始化全局模块 LoadClass函数,加载应用程序主类...
  • 我今天一天都在找如何JVM的字符编码由gbk改为utf-8,由于依赖你本地的系统,所以改起来有点麻烦,看了很多文档, 原因是因为file.encoding默认的字符集跟操作系统有关,中文操作系统下面默认的字符集是GBK,如果...
  • 启动JVM的时候,只需增加-Xint或者-Djava.compiler=NONE选项即可: java -Xintyour_main_class_file_name java-Djava.compileryour_main_class_file_name 如果是从Eclipse启动,则需要在Run Configurati...
  • 1.JVM参数优化的实际意义 在本地开发环境很少会遇到对jvm进行优化,但是到了生产...程序是否启动成功 程序内代码是否有明显性能问题 但是上述解决排查问题方案失败后,很可能是当前程序所在机器出现性能问题,对于运...
  • 文章目录问题解决 问题 如果查看运行起来的Java程序,加载了哪些jar文件?...观察类的加载过程,可以使用 -verbose标志启动 JVM,例如: java -verbose:class ... 在log中打印出:加载了什么,从哪里加载等信息… ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,428
精华内容 571
关键字:

如何启动jvm