首页 » jvm性能调优

其实这三个词关系不是很大,但是因为长的像,所以在中国是常见的面试题。哈哈

1.final 修饰变量/参数,不可更改(指针),如果时list,则里面还是能添加对象的,这点和immutable不同啊。
2.finally 和try配合使用,除非try里面用了System.exit()否则,finally一定会执行。
3.finalize 是给垃圾回收器用的。但是垃圾回收的时间是不确定的,所以可能造成OOM哦。而且jvm在调用finalize的时候会吞掉里面的任何异常,造成不可预知的结果。JDK9已经标记这个方法为depreciate。如果想用,可以用java.lang.ref.Cleaner,虽然单独出线程来处理了。不会造成死锁,但是还是建议不要用cleaner。最好的方法还是用完显式的释放。

Exception和Error都继承自Throwable类,可以被throw和catch,那么他们有什么区别呢

1.Exception是程序正常运行中,可以预料的意外情况,可能而且应该被catch,进行处理
2.Error是不大可能出现的情况,绝大部分Error会导致JVM处于非正常的不可恢复的状态,如OOM,不便于或者也不需要捕获。
3.Exception分为可检查异常和不检查异常。可检查异常是编译器检查的一部分,必须显示的进行捕获处理,如IO异常。不检查异常是运行时异常,可以再运行时用代码判断是否捕获。如空指针,数组超界。常见问题参考--https://blog.csdn.net/bryantlmm/article/details/78118763
4.注意try catch是有性能损耗的,不要用try包括大量的代码,用if else会更高效。对于追求极致性能的底层类库,会使用创建不进行栈快照的Exception。
5.Reactive 编程时,不能简单的抛异常,异常处理也要非常小心,很容易导致其他问题

说起java平台,最多的是跨平台,一次编译,到处运行。java代码用javac编译成bytecode 的class文件,然后运行时,解释器转换成最终的机器码。JIT会把热点代码编译执行,而不是解释执行。

1.类加载器,Bootstrap,Application,Extension class loader,参考周志明《深入理解java虚拟机》。经过加载,验证,链接,初始化。
2.常见的垃圾收集器,SerialGC,Parallel GC,CMS,G1
3.java分为编译期和运行时。

  • 编译生成的.class文件是平台无关的,会屏蔽具体的硬件细节和操作系统细节,这是“一次编译,到处运行”的基础
  • 运行时,通过类加载器Class Loader加载字节码(.class)文件。可以解释加载也可以编译加载。jdk 8 默认的是混合模式,即java运行指令-Xmixed,但是Client模式和Server模式有明显的区别
  • client模式以启动快速为目的,启动时 会进行1500次(上限)调用来进行编译。这里的JIT是C1
  • Server模式以长时间运行为目的,启动时 会进行上万次调用,来确定搞笑的编译,这里的JIT是C2,C2默认采用所谓的分层编译TieredComplilation
  • 当然可以再运行时指定-Xcomp,告诉jvm关闭解释器,编译运行,但这种未必是最搞笑的,而且启动会慢很多
  • 也可以指定-Xint,只解释运行
  • 除了编译和解释,还有一种aot模式(oracle jdk 9引入),将某个模块编译成机器代码,可以减少启动预热开销,使用jaotc工具来使用.注意分层编译可以和AOT一起使用,不是非此即彼的。
    jaotc --output libHelloWorld.so  HelloWorld.classs
    java -XX:AOTLibrary=./libHelloWorld.so HelloWorld

本文介绍一些基本的jvm信息查看命令.JDK自带了一些工具可以查看,数字是pid是

1.jcmd -l查看所有的java 进程

jcmd -l
15152 org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath /home/shenfeng/.local/share/kotlin/daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath /home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/kotlinc/lib/kotlin-compiler.jar
15203 org.jetbrains.jps.cmdline.Launcher /home/shenfeng/Tools/idea-IU-183.5912.21/lib/javac2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-impl-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/idea_rt.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-buffer-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna-platform.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/lz4-1.3.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-lang3-3.4.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-http-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-logging-1.2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-builder-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders-6.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/nanoxml-2.2.3.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/resources_en.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jdom.jar:/home/shenfeng/
32741 org.jetbrains.jps.cmdline.Launcher /home/shenfeng/Tools/idea-IU-183.5912.21/lib/javac2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-impl-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/idea_rt.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-buffer-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna-platform.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/lz4-1.3.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-lang3-3.4.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-http-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-logging-1.2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-builder-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders-6.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/nanoxml-2.2.3.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/resources_en.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jdom.jar:/home/shenfeng/
3574 /home/shenfeng/Tools/charles/bin/../lib/charles.jar
1352 org.jetbrains.jps.cmdline.Launcher /home/shenfeng/Tools/idea-IU-183.5912.21/lib/javac2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-impl-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/idea_rt.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-buffer-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna-platform.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/lz4-1.3.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-lang3-3.4.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-http-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-logging-1.2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-builder-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders-6.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/nanoxml-2.2.3.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/resources_en.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jdom.jar:/home/shenfeng/
15210 com.tddlmj.web.WebApplication --enableCrawl=true --server.port=8787
15323 sun.tools.jcmd.JCmd -l
12251 com.intellij.idea.Main

2.查看进程3574的启动时间

jcmd 3574 VM.uptime
3574:
248081.860 s

3.查看System.getPropertites条目,也可以用jinfo -sysprops process_id

jcmd 15805 VM.system_properties
15805:
#Thu May 23 14:43:51 CST 2019
java.vendor=Oracle Corporation
preload.project.path=/home/shenfeng/dev/rstar/rStar-dataWash
sun.java.launcher=SUN_STANDARD
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.nio.ch.bugLevel=
idea.config.path=/home/shenfeng/.IntelliJIdea2018.3/config
idea.paths.selector=IntelliJIdea2018.3
kotlin.daemon.client.alive.path="/tmp/kotlin-idea-7727541766871982555-is-running"
jnidispatch.path=/home/shenfeng/.IntelliJIdea2018.3/system/compile-server/datawash_a4de10e5/_temp_/jna--632901258/jna4835071230586300281.tmp
os.name=Linux
sun.boot.class.path=/usr/lib/jvm/java-8-openjdk/jre/lib/resources.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/sunrsasign.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/jsse.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/jce.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/charsets.jar\:/usr/lib/jvm/java-8-openjdk/jre/lib/jfr.jar\:/usr/lib/jvm/java-8-openjdk/jre/classes
idea.plugins.path=/home/shenfeng/.IntelliJIdea2018.3/config/plugins
java.vm.specification.vendor=Oracle Corporation
java.runtime.version=1.8.0_202-b26
jna.loaded=true
io.netty.serviceThreadPrefix=Netty
user.name=shenfeng
kotlin.incremental.compilation=true
idea.home.path=/home/shenfeng/Tools/idea-IU-183.5912.21
user.language=en
jdt.compiler.useSingleThread=true
sun.boot.library.path=/usr/lib/jvm/java-8-openjdk/jre/lib/amd64
java.version=1.8.0_202
user.timezone=Asia/Shanghai
java.net.preferIPv4Stack=true
kotlin.daemon.enabled=
sun.arch.data.model=64
io.netty.initialSeedUniquifier=-3110358786008209641
java.endorsed.dirs=""
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
java.specification.name=Java Platform API Specification
java.class.version=52.0
user.country=US
java.home=/usr/lib/jvm/java-8-openjdk/jre
java.vm.info=mixed mode
os.version=4.19.30-1-MANJARO
path.separator=\:
java.vm.version=25.202-b26
jps.fallback.jdk.version=1.8.0_152-release
java.awt.printerjob=sun.print.PSPrinterJob
sun.io.unicode.encoding=UnicodeLittle
awt.toolkit=sun.awt.X11.XToolkit
jps.log.dir=/home/shenfeng/.IntelliJIdea2018.3/system/log/build-log
io.netty.processId=58698
user.home=/home/shenfeng
java.specification.vendor=Oracle Corporation
java.library.path=/usr/java/packages/lib/amd64\:/usr/lib64\:/lib64\:/lib\:/usr/lib
java.vendor.url=http\://java.oracle.com/
jps.fallback.jdk.home=/home/shenfeng/Tools/idea-IU-183.5912.21/jre64
java.vm.vendor=Oracle Corporation
java.runtime.name=OpenJDK Runtime Environment
sun.java.command=org.jetbrains.jps.cmdline.Launcher /home/shenfeng/Tools/idea-IU-183.5912.21/lib/javac2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-impl-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/idea_rt.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-buffer-4.1.30.Final.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna-platform.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/lz4-1.3.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-lang3-3.4.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-http-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-logging-1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-builder-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders-6.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/nanoxml-2.2.3.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/resources_en.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jdom.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-resolver-4.1.30.Final.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/forms-1.1-preview.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/protobuf-java-3.4.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-api-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-transport-4.1.30.Final.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-codec-4.1.30.Final.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-aether-provider-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-builder-support-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-spi-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/log4j.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-model.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-connector-basic-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-util-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/util.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/slf4j-api-1.7.25.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-artifact-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/trove4j.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/oro-2.0.8.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/plexus-interpolation-1.21.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-common-4.1.30.Final.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-dependency-resolver.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-file-1.1.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/httpcore-4.4.10.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/annotations.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-codec-1.10.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/httpclient-4.5.6.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/plexus-utils-3.0.22.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/platform-api.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/guava-25.1-jre.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/asm-all-7.0.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-repository-metadata-3.3.9.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/plexus-component-annotations-1.6.jar\:\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/gson-2.8.5.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/jarutils.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/guava-25.1-jre.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/common-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/manifest-merger-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/sdk-common-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/builder-model-3.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/builder-test-api-3.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/ddmlib-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/repository-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/gradle/lib/gradle-api-4.10.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/gson-2.8.5.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/jarutils.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/guava-25.1-jre.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/common-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/manifest-merger-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/sdk-common-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/builder-model-3.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/builder-test-api-3.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/ddmlib-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/repository-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/gradle/lib/gradle-api-4.10.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/uiDesigner/lib/jps/ui-designer-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/IntelliLang/lib/intellilang-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Groovy/lib/groovy-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Groovy/lib/groovy-rt-constants.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/eclipse/lib/eclipse-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/eclipse/lib/common-eclipse-util.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/maven/lib/maven-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/aspectj/lib/aspectj-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/gradle/lib/gradle-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/devkit/lib/devkit-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/JavaEE/lib/javaee-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/JavaEE/lib/jps/jpa-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/jps/android-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/android-common.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/build-common.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/android-rt.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/sdklib.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/common-26.1.2.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/jarutils.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/android/lib/layoutlib-api.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/javaFX/lib/javaFX-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/javaFX/lib/common-javaFX-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/kotlin-stdlib.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/kotlin-reflect.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/kotlin-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/android-extensions-ide.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/Kotlin/lib/android-extensions-compiler.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/flex/lib/flex-jps-plugin.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/plugins/flex/lib/flex-shared.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/scala-library.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/compiler-shared.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/jps/nailgun.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/jps/compiler-jps.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/jps/sbt-interface.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/jps/incremental-compiler.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/scala-library.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/lib/scala-play-2-jps-plugin.jar\:/home/shenfeng/.IntelliJIdea2018.3/config/plugins/Scala/launcher/sbt-launch.jar org.jetbrains.jps.cmdline.BuildMain 127.0.0.1 41593 de52788b-9f2a-4f95-9740-5cda56887d40 /home/shenfeng/.IntelliJIdea2018.3/system/compile-server
java.class.path=/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-launcher.jar\:/usr/lib/jvm/java-8-openjdk/lib/tools.jar\:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/optimizedFileManager.jar
io.netty.machineId=28\:f0\:76\:ff\:fe\:16\:65\:0e
java.vm.specification.name=Java Virtual Machine Specification
jps.backward.ref.index.builder=true
java.vm.specification.version=1.8
preload.config.path=/home/shenfeng/.IntelliJIdea2018.3/config/options
sun.cpu.endian=little
sun.os.patch.level=unknown
java.awt.headless=true
java.io.tmpdir=/home/shenfeng/.IntelliJIdea2018.3/system/compile-server/datawash_a4de10e5/_temp_
java.vendor.url.bug=http\://bugreport.sun.com/bugreport/
jna.platform.library.path=/usr/lib64\:/lib64\:/usr/lib\:/lib\:/usr/lib32\:/usr/lib/libfakeroot
os.arch=amd64
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.ext.dirs=/usr/lib/jvm/java-8-openjdk/jre/lib/ext\:/usr/java/packages/lib/ext
rebuild.on.dependency.change=true
user.dir=/home/shenfeng/.IntelliJIdea2018.3/system/compile-server
line.separator=\n
java.vm.name=OpenJDK 64-Bit Server VM
file.encoding=UTF-8
java.specification.version=1.8
compile.parallel=false
io.netty.noUnsafe=true

3.JVM版本

jcmd 15805 VM.version
15805:
OpenJDK 64-Bit Server VM version 25.202-b26
JDK 8.0_202

4.JVM启动参数


jcmd 15805 VM.command_line
15805:
VM Arguments:
jvm_args: -Xmx700m -Djava.awt.headless=true -Djava.endorsed.dirs="" -Djdt.compiler.useSingleThread=true -Dpreload.project.path=/home/shenfeng/dev/rstar/rStar-dataWash -Dpreload.config.path=/home/shenfeng/.IntelliJIdea2018.3/config/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=-3110358786008209641 -Dfile.encoding=UTF-8 -Duser.language=en -Duser.country=US -Didea.paths.selector=IntelliJIdea2018.3 -Didea.home.path=/home/shenfeng/Tools/idea-IU-183.5912.21 -Didea.config.path=/home/shenfeng/.IntelliJIdea2018.3/config -Didea.plugins.path=/home/shenfeng/.IntelliJIdea2018.3/config/plugins -Djps.log.dir=/home/shenfeng/.IntelliJIdea2018.3/system/log/build-log -Djps.fallback.jdk.home=/home/shenfeng/Tools/idea-IU-183.5912.21/jre64 -Djps.fallback.jdk.version=1.8.0_152-release -Dio.netty.noUnsafe=true -Djava.io.tmpdir=/home/shenfeng/.IntelliJIdea2018.3/system/compile-server/datawash_a4de10e5/_temp_ -Djps.backward.ref.index.builder=true -Dkotlin.incremental.compilation=true -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path="/tmp/kotlin-idea-7727541766871982555-is-running" 
java_command: org.jetbrains.jps.cmdline.Launcher /home/shenfeng/Tools/idea-IU-183.5912.21/lib/javac2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-impl-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/idea_rt.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-buffer-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna-platform.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/lz4-1.3.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-lang3-3.4.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-transport-http-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/commons-logging-1.2.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-model-builder-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders-6.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/nanoxml-2.2.3.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/resources_en.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jdom.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-resolver-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/forms-1.1-preview.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jna.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/protobuf-java-3.4.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-api-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-transport-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/netty-codec-4.1.30.Final.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-builders.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-aether-provider-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/maven-builder-support-3.3.9.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-spi-1.1.0.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/log4j.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-model.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/aether-connector-basic-1.1.0.jar:/home/shenfeng/To
java_class_path (initial): /home/shenfeng/Tools/idea-IU-183.5912.21/lib/jps-launcher.jar:/usr/lib/jvm/java-8-openjdk/lib/tools.jar:/home/shenfeng/Tools/idea-IU-183.5912.21/lib/optimizedFileManager.jar
Launcher Type: SUN_STANDARD

5.打印JVM调优标志

jcmd 15805 VM.flags
15805:
-XX:CICompilerCount=4 -XX:InitialHeapSize=262144000 -XX:MaxHeapSize=734003200 -XX:MaxNewSize=244318208 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=87031808 -XX:OldSize=175112192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC