版权声明:本文为博主原创文章,未经博主允许不得转载。 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.自旋时会适当放弃线程优先级之间的差异
- -XX:+-UseBiasedLocking
偏向锁开启/关闭
Java1.5 update 6后引入默认关闭。Java1.6默认启用。
- -XX:BiasedLockingStartupDelay=0
偏向锁用程序启动几秒钟之后才激活,启动偏向锁可以配合这个参数,关闭延迟。
- -server -XX:+DoEscapeAnalysis -XX:+EliminateLocks
参数在jvm为server模式下配合使用,可以开启锁消除,对于无竞争锁,jvm会自动消除锁。 -XX:+DoEscapeAnalysis 表示开启逃逸分析 -XX:+EliminateLocks 表示锁消除
调试
持续更新中...ing。