在Java 8中识别stacktrace中的lambdas

我正在尝试使用JProfiler配置使用lambdas的Java应用程序。 我无法识别,探查器将哪个lambda显示为热点:

profiler截图

我很感激任何帮助理解涉及lambdas的堆栈跟踪的格式,如“edu.indiana.soci.spidal.vectorclass.lambda $ PairwiseThread_SecDrv $ 23”

谢谢!

不幸的是,没有直接的方法来识别lambda,因为lambdas本质上没有名字。 在运行时,lambdas目前使用匿名类实现。 它们在包含类的$符号后按顺序编号。

如果您打开JProfiler中的行号解析(会话设置 – >性能分析设置选项卡 – >自定义 – >“方法通话记录”选项卡上的复选框),您将在热点上的“运行”方法中看到一个行号返回跟踪,它应该可以帮助你找到lambda,如果它是该行上唯一的lambda。