深度探索JFR
Event 采集详细配置 目前,JDK 11 一共有136个 Event 采集配置。这里会比较详细的去看每一个Event,并说明基本应用,建议配置。如果 default.jfc 中没有打开或者需要修改的配置,会将配置文件代码发出来。 1. JFR 相关 Event 一共4个 Event,但是需要关心的就下面这两个 Data Loss :数局丢失 Event,当有数据发生丢失时,会有这个Event 进行记录。包括开始时间,Amount(本次丢失多少事件),Total(一共丢失多少事件) Recording Setting :记录详细配置采集 Event,会在每次产生新的 Data Chunk 的时候采集一次所有的 Event 的详细配置并记录到这个 Event 中。 这些在 default.jfc 中默认打开 2. JAVA 应用相关 2.1. TLAB 相关 众所周知,TLAB (Thread Local Allocation Buffer)目的是为类进行内存快速分配。堆内存所有线程共享访问,所以在堆内存上面分配对象,就会锁定整个堆,这样效率太低。TLAB 是位于堆内存上面的一块内存区域,在为每个线程分配 TLAB 的时候才会锁定堆(G1 是CAS分配)。分配对象的时候,优先从线程的 TLAB 上分配,这样就不用和其他线程同步。当对象比较大的时候,例如对于 G1 来说,