《Optimizing Java》读书笔记中

本文详细探讨了Java的垃圾收集机制,包括标记-清除、HotSpot运行时的 Ordinary Object Pointer、并发收集器的工作原理,以及如何通过调整GC参数进行性能优化。同时,文章还介绍了GC日志分析、监控工具和调优策略,帮助开发者更好地理解和管理Java应用的内存行为。
摘要由CSDN通过智能技术生成
开头吐槽一句:当初被Java骗的呀,什么自动内存管理,到头来还是都要学的。还不如直接去学C++呐。

第六章:理解垃圾收集

标记-清除

for each object in allocatedObjectList:
    clearing the mark bit
    // 所以对象是8字节的倍数,遍历还可以跳着来

DFS starting from GC-Roots:
    set the reached object mark bit

for each object in allocatedObjectList:
    if mark bit hasn't setted:
        remove it from allocatedObjectList
内存布局如下图

这里写图片描述

jmap -histo [pid]
 num     #instances         #bytes  class name
 ----------------------------------------------
   1:         20839       14983608  [B
   2:        118743       12370760  [C
   3:         14528        9385360  [I
   4:           282        6461584  [D
   5:        115231        3687392  java.util.HashMap$Node
   6:        102237        2453688  java.lang.String
   7:         68388        2188416  java.util.Hashtable$Entry
   8:          8708        1764328  [Ljava.util.HashMap$Node;
   9:         39047        1561880  jdk.nashorn.internal.runtime.CompiledFunction
  10:         23688        1516032  com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
  11:         24217        1356152  jdk.nashorn.internal.runtime.ScriptFunction
  12:         27344        1301896  [Ljava.lang.Object;
  13:         10040        1107896  java.lang.Class
  14:         44090        1058160  java.util.LinkedList$Node
  15:         29375         940000  java.util.LinkedList
  16:         25944         830208  jdk.nashorn.internal.runtime.FinalScriptFunctionData
  17:            20         655680  [Lscala.concurrent.forkjoin.ForkJoinTask;
  18:         19943         638176  java.util.concurrent.ConcurrentHashMap$Node
  19:           
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值