我正在寻找有关 x86/x64/ia64 上 .NET CLR/JIT 使用的内存模型之间差异的引用。我知道 x86 和 ia64 之间存在一些差异(指令重新排序、指令删除等),但我还没有找到有关 x86 和 x64 之间差异的引用。
我有一个应用程序的目标是一些非常严格的延迟数字,目前只能在 x86 上运行,也可能在 x64 上运行(绝对不是在 ia64 上)。我想知道我是否可以依赖 x86 JIT 实现的一些工件并且在 x64 上仍然相对安全,或者我是否应该对更松散的 ia64 JIT 进行编程(这将需要更多的字段是不稳定的,并且在多个内存屏障中插入地方)。
在此先感谢您的指点。
最佳答案
关于.NET内存模型的两篇文章(比ECMA模型强,顺便说一句):
乔·达菲 (Joe Duffy) 的书,Concurrent Programming on Windows ,也是有关此主题的重要信息来源。
关于.net - .NET 上 x86/x64/ia64 内存模型之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768078/