欢迎!请参阅关于页面以了解更多关于如何使用本站的信息。
我使用VisualVM找到了代码的性能瓶颈,但它显示所有时间都在LockingTransaction内消耗。有没有任何技巧可以在事务中获取性能结果?
profileTransaction.png gist
我不确定是否有很好的方法来真正查看事务中的细节。事务通常应该是尽可能简单的,因为它们是可重试的关键部分,所以我通常更关注诸如ref更新的竞争等问题,对于这一点,你可能需要使用不同的分析技术(寻找等待/停滞的线程)等。
如果我现在处于这个位置,我认为与其使用分析器,不如尝试使用我的大脑工具来思考事务中的工作/竞争,这些工作/竞争可以被拉出关键部分,或者是否可以解除引用的纠缠,这样就不需要协调。
如果您想分享更多关于引用或事务代码的信息,这可能有助于激发这些想法。