Spesifikasi ECMA CLI mendefinisikan model memori yang lemah. Ini memungkinkan untuk menyusun ulang urutan eksekusi perintah (yang berguna untuk kinerja). Tetapi menulis kode tingkat rendah untuk model seperti itu sangat sulit.
Dan yang paling penting - arsitektur prosesor X86 / AMD64 memiliki model memori yang lebih ketat (kuat). Akibatnya, Microsoft menerapkan model memori yang lebih kuat dalam implementasi CLR daripada yang dijelaskan dalam spesifikasi.
Apakah model memori diubah dalam .NET Core? Secara potensial, kerangka kerja ini dapat berjalan pada arsitektur dengan model memori yang lebih lemah daripada X86 / AMD64.
Selain itu, .NET Core menggabungkan Mono dan lainnya. Dan sejauh yang saya tahu, model memori Mono lebih lemah, sesuai dengan ECMA.
Dalam artikel ini Memperkenalkan. NET 5 yang ditulis:
Perluas kapabilitas .NET dengan mengambil yang terbaik dari .NET Core, .NET Framework, Xamarin dan Mono.
Jadi saya pikir jika tidak sekarang, maka di masa depan runtimes ini akan bergabung menjadi satu kesatuan.
Di bawah dalam artikel ini tertulis:
Kami sedang dalam proses membuat CoreCLR dan Mono menjadi pengganti satu sama lain. Kami akan membuatnya sesederhana sebuah switch build untuk memilih antara opsi runtime yang berbeda.
Jika saya mengerti dengan benar, akan ada dua (atau lebih) runtime. Dan mungkin semua orang akan memiliki model memori mereka sendiri.
Apa yang kita bicarakan: Model Memori .