JVM参数学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jl19861101/article/details/87360862

性能

  • -XX:MaxTenuringThreshold

MaxTenuringThreshold这个参数用于控制对象能经历多少次Minor GC才晋升到旧生代

默认值是15

  • -XX:+-UseSpinning

自旋锁开启/关闭

Java1.4.2和1.5需要手动启用, Java1.6默认已启用

  • -XX:PreBlockSpin

控制多线程自旋锁优化的自旋次数

默认10

JDK1.7后,去掉此参数,由jvm控制

JVM本身的一些优化

1.如果平均负载小于CPUs则一直自旋

2.如果有超过(CPUs/2)个线程正在自旋,则后来线程直接阻塞

3.如果正在自旋的线程发现Owner发生了变化则延迟自旋时间(自旋计数)或进入阻塞

4.如果CPU处于节电模式则停止自旋

5.自旋时间的最坏情况是CPU的存储延迟(CPU A存储了一个数据,到CPU B得知这个数据直接的时间差)

6.自旋时会适当放弃线程优先级之间的差异

内容来源:https://blog.csdn.net/zqz_zqz/article/details/70233767

  • -XX:+-UseBiasedLocking

偏向锁开启/关闭

Java1.5 update 6后引入默认关闭。Java1.6默认启用。

  • -XX:BiasedLockingStartupDelay=0

偏向锁用程序启动几秒钟之后才激活,启动偏向锁可以配合这个参数,关闭延迟。

  • -server -XX:+DoEscapeAnalysis -XX:+EliminateLocks
参数在jvm为server模式下配合使用,可以开启锁消除,对于无竞争锁,jvm会自动消除锁。
-XX:+DoEscapeAnalysis  表示开启逃逸分析
-XX:+EliminateLocks 表示锁消除

调试

持续更新中...ing。

猜你喜欢

转载自blog.csdn.net/jl19861101/article/details/87360862
今日推荐