[英]Which kinds of reordering optimizations do x86 CPUs do?
埃里克·利珀特(Eric Lippert)在他的博客文章中说:
我注意到,在基于x86的硬件上,实际上从未观察到这种特定的写入重新排序; 这些CPU不执行此优化。
这是否意味着x86 CPU在讨论易失性和读写的重新排序时没有讨论任何问题,还是仅在此示例中CPU不会重新排序?
x86_64 CPU可以在什么情况下发生什么类型的重新排序?
这是否意味着x86 CPU在讨论易失性和读写的重新排序时没有讨论任何问题,还是仅在此示例中CPU不会重新排序?
这意味着不会在x86 CPU中重新排列存储 。 负载仍然可以向后移动。 然后,重要的是要了解x86的含义。 在本文的上下文中,它仅表示x86,而不是其派生词。 与基本的x86实现相比,x86 oostore体系结构实现了更多的内存重新排序。 您可以在此处获取所有详细信息: http : //en.wikipedia.org/wiki/Memory_ordering
此用例周围有很多示例,如下所示:
同样,重新排序不能跨越此体系结构上的方法调用边界。
除了重新排序之外,几乎所有CPU架构都可以缓存值,这是一个更为明显的优化。 这是此优化的一个好用例:
http://www.codeproject.com/Articles/389730/The-unsung-hero-Volatile-keyword-Csharp-threading
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.