不同種類的DirectByteBuffer
更新時(shí)間:
所有DirectByteBuffer
在該類別下,ATP將列出堆中所有DirectByteBuffer。
JVM管控DirectByteBuffer
在該類別下,ATP將列出由JVM自帶清理器jdk.internal.ref.Cleaner管控的DirectByteBuffer(即DirectByteBuffer.cleaner字段不為空)。
這些DirectByteBuffer關(guān)聯(lián)一片堆外內(nèi)存,當(dāng)DirectByteBuffer對(duì)象不再被使用的時(shí)候,jdk.internal.ref.Cleaner會(huì)負(fù)責(zé)自動(dòng)釋放關(guān)聯(lián)的堆外內(nèi)存。
JNI分配的DirectByteBuffer
在該類別下,ATP將列出由JNI方法NewDirectByteBuffer
分配的DirectByteBuffer對(duì)象(即DirectByteBuffer.cleaner和DirectByteBuffer.att均為空)。
用戶通過Unsafe或JNI手動(dòng)分配一片內(nèi)存地址,并將這部分地址作為參數(shù)傳遞給JNI方法NewDirectByteBuffer
,DirectByteBuffer與該地址綁定,這片內(nèi)存的生命周期由用戶負(fù)責(zé)管理。
文檔內(nèi)容是否對(duì)您有幫助?