过去,我使用了nprof,Equatec profiler和Yourkit profiler等性能分析工具来识别和删除/减少主要在一个线程中运行的代码中的性能瓶颈(序列化执行)。现在我写了很多多线程代码,可以通过锁争用来减慢速度;可以使用哪些工具和技巧来确定锁定争用发生的位置和数量?
答案 0 :(得分:2)
很快就会推出,目前已在Visual Studio 2010 beta 2中发布。这是一个video of the tool。
答案 1 :(得分:1)
从英特尔试试ThreadChecker。它适用于Windows和Linux。如果您正在使用Windows,请尝试Parallel Studio。它提供了易于使用的锁定等待分析器。它显示了运行时期间的整体并发性,它提供了有关锁争用和较差并发性的提示。这些工具现在正在做你想要的。
答案 2 :(得分:0)
要在Windows上进行开发,软件验证会有一些( http://www.softwareverify.com/thread.html)。
对于C,C ++,Delphi尝试使用Thread Validator。
对于Java,还有Java Thread Validator。
还有Python和Ruby的实验版本。