我想知道如何分析pthread互斥,以查看我的代码中是否有任何锁定争用点。(谁喜欢有争议的代码,对吧?:)正如我提到的here,我知道如何对代码进行更一般的分析。但我想知道是否有任何可用的工具或选项来分析互斥锁,这些工具或选项可以提供有关互斥锁争用的度量/统计信息,以查看我是否有任何问题区域。
下面是一些背景和背景:
最近,我使用Cavium Octeon CPU参与了一个嵌入式C++项目。Octeon SDK使用自旋锁实现互斥锁风格的同步。浏览Octeon文档时,我遇到了一种分析自旋锁的方法,以便能够查看在等待锁可用时每个自旋锁必须旋转多少次。为了使用它,我必须做一个条件编译,然后它会在每次自旋锁旋转时增加一个计数器,然后我可以查询旋转等待值。因此,我所做的是封装自旋锁,并为系统中使用的所有自旋锁添加了转储自旋锁旋转等待值的功能。实际的值并不意味着什么,但有一些与其他值相比确实很高,我专注于减少对这些值的争用。
我知道这对于自旋锁来说可能很简单,因为它只是一个计数器,但通过阅读相关的pthread手册页和头文件,我没有发现任何类似的东西,pthread mutex有什么可用的吗?
我真的希望避免做一些麻烦的事情,比如在每个锁之前和之后花费时间。
PS:互斥的复数是什么?互斥,互斥?Mutexes对我来说从来都不合适。
https://stackoverflow.com/questions/10852637
复制相似问题