09 2019 档案
TimSort Java源码个人解读
摘要:1 /*JDK 1.8 2 */ 3 4 package java.util; 5 6 /** 7 * A stable, adaptive, iterative mergesort that requires far fewer than 8 * n lg(n) comparisons when
阅读全文
JDK本地内存追踪NMT
摘要:通常情况下, JVM占用的内存不仅仅是 Xmx, Xms等指定的大小, 因为JVM也是一个应用, 它需要额外的空间去完成它的工作, 除了堆外, JVM会分配内存的地方包括以下这些: Metaspace : 元数据区, 存储类, 及方法的元数据信息 Threads : 线程, 线程里的栈还是比较耗内存
阅读全文
JDK8从永生代到元数据区
摘要:永生代 永生代默认的最大内存大小是在32位JVM上为64MB, 在64位JVM上为82MB。可以通过 和` XX:MaxPermSize=[size]`来调整。 永生代包含类和方法的元数据信息, 一般情况下它需要的空间不是很大, 但是由于热部署等一些特性会导致类信息越来越多, 从而发生内存溢出(Ou
阅读全文
Java打开GC日志
摘要:环境: JDK1.8 打开GC日志: 这个只会显示总的GC堆的变化, 如下: 参数解析: GC, Full GC, GC的类型, GC只在新生代上进行, Full GC包括永生代, 新生代, 老年代。 Allocation Failure: GC发生的原因。 80832K 19298K
阅读全文