欢迎!请查看关于页面,了解更多关于此功能的信息。
我之前使用VisualVM找到代码瓶颈效果不错。但现在它显示所有的时间都花在LockingTransaction中。在事务中获得性能结果的技巧有哪些?
profileTransaction.png gist
我不确定是否有好的方法真正看到事务内的细节。事务通常应该尽可能简单,因为它们是关键部分,可能需要重试,所以我通常更关注像ref更新的竞争等问题,为此您可能想要使用不同的分析技术(寻找等待/停滞的线程等)。
如果我在这个阶段,我会尝试使用我的大脑工具来思考什么工作/竞争可以从不关键部分拉出来,或者如果引用可以被解缠,那么协调就不需要了。
如果您想分享更多关于引用或事务代码的信息,那可能有助于激发这些想法。