.NET上的x86/x64/ia64内存模型之间的差异

Jon*_*upp 5 .net 64-bit x86 itanium memory-model

我正在寻找关于x86/x64/ia64上.NET CLR/JIT使用的内存模型之间差异的参考.我知道x86和ia64之间存在一些差异(指令重新排序,指令删除等),但我没有找到x86和x64之间差异的参考.

我有一个应用程序,旨在一些非常紧张的延迟数字,并且目前只能在x86上运行,也许在x64上运行(肯定不在ia64上).几个我想知道我是否可以依赖x86 JIT实现的一些工件并且在x64上仍然相对安全,或者我应该编程为更宽松的ia64 JIT(这将需要更多的字段是volitile并且内存屏障插入几个地方).

提前感谢任何指针.

Jon*_*eet 5

关于.NET内存模型的两篇文章(比ECMA模型强,顺便说一句):

Joe Duffy的书"Windows上的并发编程"也是有关该主题的重要信息来源.