gpt4 book ai didi

c++ - C++中互斥锁和临界区之间的性能差异

转载 作者:太空狗 更新时间:2023-10-29 20:06:31 25 4
gpt4 key购买 nike

我正在阅读 this post关于给定测试用例的关键部分和互斥锁之间的 C# 性能差异。我想知道是否有任何进一步的文档为 C++ 应用程序的各种锁定类提供性能开销,特别是在 Windows 32 或 64 位平台上运行的 MFC?

我问的原因是我在广泛的自动化测试中获得的分析器结果显示在互斥代码上花费了大量时间。我想弄清楚的是,在等待资源可用时,有多少是合理的延迟,有多少是由于锁定结构的实现和细节造成的。我只处理一个包含多个线程的进程,并且正在考虑更改为关键部分。长期自动化测试表明我不需要互斥类提供的超时。

因此问题来了,有没有人知道任何与不同 Windows 平台上的不同 MFC 锁定机制的性能开销相关的引用文档?

最佳答案

据我所知,Win32 Mutex 是一个成熟的内核对象。这意味着对 Mutex 的任何调用都将涉及系统调用。这通常会使缓存无效,因此可能会非常昂贵。

关键部分是在没有争用的情况下不使用内核的用户端对象。这可能是使用 x86 LOCK 汇编指令或类似指令来保证原子性的。由于没有进行系统调用,它会更快,但因为它不是内核对象,所以无法从另一个进程访问临界区。

关于c++ - C++中互斥锁和临界区之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7712584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com