Tôi đang đọc http://lse.sourceforge.net/locking/dcache/dcache_lock.html, trong đó thời gian spinlock cho mỗi chức năng được đo:Làm thế nào để đo lường sự tranh chấp khóa?
SPINLOCKS HOLD WAIT
UTIL CON MEAN( MAX) MEAN( MAX)(% CPU) TOTAL NOWAIT SPIN RJECT NAME
5.3% 16.5% 0.6us(2787us) 5.0us(3094us)(0.89%) 15069563 83.5% 16.5% 0% dcache_lock
0.01% 10.9% 0.2us(7.5us) 5.3us(116us)(0.00%) 119448 89.1% 10.9% 0% d_alloc+0x128
0.04% 14.2% 0.3us( 42us) 6.3us(925us)(0.02%) 233290 85.8% 14.2% 0% d_delete+0x10
0.00% 3.5% 0.2us(3.1us) 5.6us( 41us)(0.00%) 5050 96.5% 3.5% 0% d_delete+0x94
Tôi muốn biết nơi các thống kê này từ. Tôi đã thử oprofile, nhưng có vẻ như oprofile không thể đo khóa giữ và thời gian chờ đợi cho một khóa cụ thể. Và drd của valgrind làm chậm các ứng dụng quá nhiều, điều này sẽ làm cho kết quả kém chính xác hơn và cũng tiêu tốn quá nhiều thời gian. mutrace có vẻ tốt, nhưng như tên chỉ ra, tôi sợ nó chỉ có thể theo dõi loại trừ mutex.
Vì vậy, có bất kỳ công cụ nào khác hoặc cách sử dụng các công cụ tôi đã đề cập ở trên, để có được thống kê tranh chấp khóa không?
Cảm ơn bạn đã trả lời.