[英]Java heap dump analysis for lambda expressions
我的Java應用程序堆轉儲顯示我的類中使用的特定lambda鎖定了一些內存,並且在GC期間沒有釋放它。
Heap將特定的匿名lambda類顯示為ParentClass $$ Lambda $ ID ,在當前情況下,ID為79(附加圖像)。 這個ID似乎與類中存在的lambda的數量沒有任何關系,因此我們不能斷定表示哪個lambda。 我有興趣指出確切的lambda表達式,因為它有助於分析,修復和測試相關的場景。
使用DJ反編譯類文件沒有幫助,因為它將lambda表達式重新創建為可讀代碼。 如果有任何想法,請告訴我。
嘗試定義系統屬性
jdk.internal.lambda.dumpProxyClasses=/path/to/dir
在調用JVM時。 這將導致運行時將動態生成的lambda類寫入磁盤,您可以使用javap
檢查它們。 這將使您能夠查看它們保存的字段(捕獲的變量)以及lambda對應的lambda body方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.