2
如何测试和测试互斥量实现
如标题所述:如何正确测试和基准化c ++中互斥锁的不同实现? 本质上,我为在2核,armv7上运行的项目编写了自己的std :: mutex类似类,目的是在无争议的情况下最大程度地减少开销。现在,我正在考虑在更多地方以及不同的体系结构中使用所说的互斥锁,但是在执行此操作之前,我想确保 这实际上是正确的 没有任何病理情况比标准的std :: mutex表现差很多。 显然,我写了一些基本的单元测试和微基准测试,一切似乎都可以用,但是在多线程代码中,“似乎可以使用”并不能给我带来很大的安慰。 那么,是否有已建立的静态或动态分析技术? 为互斥类编写单元测试时,常见的陷阱有哪些? 在性能方面应该注意哪些典型的极端情况? 我仅将标准库类型用于实现,其中包括对原子的非顺序一致的加载和存储操作。但是,我主要对实现不可知的建议感兴趣,因为我也想对其他实现使用相同的测试工具。