gpt4 book ai didi

.NET 或 Windows 同步原语性能规范

转载 作者:可可西里 更新时间:2023-11-01 09:44:02 29 4
gpt4 key购买 nike

我目前正在写一篇科学文章,我需要在其中非常准确地引用。有人可以指点我 MSDN、MSDN 文章、一些已发表的文章来源或一本书,我可以在其中找到 Windows 或 .NET 同步原语的性能比较。

我知道这些按性能降序排列:Interlocked API、Critical Section、.NET lock-statement、Monitor、Mutex、EventWaitHandle、Semaphore。

非常感谢,
奥瓦内斯

附言我找到了一本好书:Concurrent Programming on Windows by Joe Duffy .这本书是由 .NET Framework 的一位主要并发开发人员编写的,非常精彩,有很多解释,说明事物是如何工作的或如何实现的。

最佳答案

为了粗略比较以下来自 Lockless Programming Considerations for Xbox 360 and Microsoft Windows 的数字可能会派上用场。


Windows 上同步指令和函数的性能差异很大,具体取决于处理器类型和配置,以及运行的其他代码。多核和多套接字系统通常需要更长的时间来执行同步指令,如果另一个线程当前拥有锁,则获取锁需要更长的时间。

但是,即使是从非常简单的测试中生成的一些测量值也是有帮助的:

  • MemoryBarrier 的测量结果为 20-90 个周期
  • InterlockedIncrement 的测量结果为 36-90 个周期
  • 获取或释放一个关键部分被测量为花费40-100个周期
  • 获取或释放一个互斥体被测量为大约需要 750-2500 个周期

这些测试是在 Windows XP 上的一系列不同处理器上完成的。较短的时间是在单处理器机器上,较长的时间是在多处理器机器上。

关于.NET 或 Windows 同步原语性能规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235934/

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