监控Java 8 ForkJoinPool

时间:2017-06-16 07:16:11

标签: java concurrency java.util.concurrent

有没有办法监控Java ForkJoinPool随着时间的推移正在做什么,特别是CountedCompleter有效执行的效果如何?

  • 子任务执行了多长时间?
  • 其中一个子任务比其他子任务更长?
  • 他们并行执行了吗?

应用于CountedCompleter javadoc中触发器的示例,监控工具会告诉我PacketSender完成受HeaderBuilder的限制,该BodyBuilder首先启动,但在<preference name="OverrideUserAgent" value="Mozilla/5.0 Google" /> 花了4s并完成时花了13s之前。

我寻找这样一个工具,主要是作为一个Java代理,不会用不必要的统计数据污染我的生产代码,但一无所获。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

最好的(也是唯一的)方法是使用AOP来哄骗&#34;间谍&#34; on方法调用和记录开始和结束时间戳以及可以收集用于统计分析的上下文。

我已经使用AspectJ效果良好并且可以推荐它,但是任何这样的库都应该有效。