一、晚期(运行期)优化
#栈空间大小 -xss
JDK1.7开始,栈空间默认为1M,JDK1.8同
#gc日志对应的参数列表
-XX:+PrintGC 输出GC日志
-XX:+PrintGCDetails 输出GC的详细日志
-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)
-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息
-Xloggc:../logs/gc.log 日志文件的输出路径
#示例,sas的配置:
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-Xloggc:/opt/wildfly/standalone/log/verbose.gc
#JIT编译
当编译工作完成后,这个方法的调用入口地址就会被系统自动改写成新的地址,下一次调用该方法是就会使用已编译的版本。
#主要的热点探测方式
基于采样的热点探测
基于计数器热点探测(方法调用计数器、回边计数器)
基于“踪迹”(trace)的热点探测
#OSR编译(On-Stack Replacement,栈上替换)回边计数器编译时采用
OSR是一种在运行时替换正在运行的函数/方法的栈帧的技术。但它是手段,不是目的——是出于某种目的需要在运行时替换栈帧。
#即时编译器优化技术一览
编译器策略
基于性能监控的优化技术
基于证据的优化技术
数据流敏感重写
语言相关的优化技术
内存及代码位置变换
循环变换
全局代码调整
控制流图变换
#方法内联(Method Inlining)
内联的主要目的有两个,一是去除方法调用的成本(如建立栈帧等),二是为其他优化建立良好的基础。
标签:Java,读书笔记,虚拟机,计数器,编译,XX,GC,日志,优化
来源: https://www.cnblogs.com/atai/p/12206157.html