OopMap 前文我们说到,JVM 采用的可达性分析法有个缺点,就是从 GC Roots 找引用链耗时. 都说他耗时,他究竟耗时在哪里? GC 进行扫描时,需要查看每个位置存储的是不是引用类型,如果是,其所引用的对象就不能被回收:如果不是,那就是基本类型,这些肯定是不会引用对象的:这种对 GC 无用的基本类型的数据非常多,每次 GC 都要去扫描,显然是非常浪费时间的. 而且迄今为止,所有收集器在 GC Roots 枚举这一步骤都是必须暂停用户线程的. 那有没有办法减少耗时呢? 一个很自然的想法,