Pav*_*mar 5 java lambda profiling heap-dump java-8
我的Java应用程序堆转储显示,我的类中使用的特定lambda已锁定了一定数量的内存,并且在GC期间未释放该内存。
堆将特定的匿名lambda类显示为ParentClass $$ Lambda $ ID,在当前情况下,该ID为79(附加图像)。这个ID似乎与该类中存在的lambda的数量没有任何关系,因此我们无法得出代表哪个lambda的结论。我有兴趣指出确切的lambda表达式,因为它有助于分析,修复和测试相关场景。
用DJ反编译类文件无济于事,因为它会将lambda表达式重新创建为可读代码。让我知道是否有任何想法。

尝试定义系统属性
jdk.internal.lambda.dumpProxyClasses=/path/to/dir
Run Code Online (Sandbox Code Playgroud)
调用JVM时。这将导致运行时将动态生成的lambda类写入磁盘,您可以在其中检查它们javap。这将使您能够看到它们包含哪些字段(捕获的变量)以及lambda对应的lambda主体方法。
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |