ECMA CLI仕様では、弱いメモリモデルが定義されています。これにより、コマンドの実行順序を並べ替えることができます(パフォーマンスに役立ちます)。しかし、そのようなモデルの低レベルのコードを書くことは非常に困難です。
そして最も重要なこと-X86 / AMD64プロセッサアーキテクチャには、より厳密な(強力な)メモリモデルがあります。その結果、MicrosoftはCLR実装に、仕様に記載されているよりも強力なメモリモデルを実装しました。
.NET Coreでメモリモデルは変更されましたか?潜在的に、このフレームワークは、X86 / AMD64よりも弱いメモリモデルのアーキテクチャで実行できます。
さらに、.NET CoreにはMonoやその他が組み込まれています。そして、私の知る限りでは、Monoメモリーモデルはより弱く、ECMAに対応しています。
この記事では、.NET 5の概要を説明します。
.NET Core、.NET Framework、Xamarin、Monoを最大限に活用して.NETの機能を拡張します。
したがって、今ではないとしたら、将来的にはこれらのランタイムが1つの全体にマージされると思います。
記事の下に書かれています:
現在、CoreCLRとMonoのドロップイン置換を相互に作成しています。異なるランタイムオプションから選択するビルドスイッチと同じくらい簡単にします。
私が正しく理解していれば、2つ(またはそれ以上)のランタイムがあります。そしておそらく誰もが独自のメモリモデルを持っているでしょう。
私たちは話している:メモリモデルを。