La spécification ECMA CLI définit un modèle de mémoire faible. Cela permet de réorganiser l'ordre d'exécution des commandes (ce qui est utile pour les performances). Mais écrire du code de bas niveau pour un tel modèle est très difficile.
Et le plus important - les architectures de processeur X86 / AMD64 ont un modèle de mémoire plus strict (fort). En conséquence, Microsoft a implémenté un modèle de mémoire plus puissant dans son implémentation CLR que celui décrit dans la spécification.
Le modèle de mémoire a-t-il changé dans .NET Core? Potentiellement, ce cadre peut fonctionner sur des architectures avec un modèle de mémoire plus faible que X86 / AMD64.
De plus, .NET Core intègre Mono et autres. Et pour autant que je sache, le modèle de mémoire mono est plus faible, correspond à l'ECMA.
Dans cet article Présentation de .NET 5 écrit:
Développez les capacités de .NET en tirant le meilleur parti de .NET Core, .NET Framework, Xamarin et Mono.
Donc, je pense que si ce n'est pas maintenant, alors à l'avenir, ces durées d'exécution fusionneront en un seul ensemble.
Ci-dessous dans l'article, il est écrit:
Nous sommes en train de faire des remplacements CoreCLR et Mono l'un pour l'autre. Nous allons le rendre aussi simple qu'un commutateur de construction pour choisir entre les différentes options d'exécution.
Si je comprends bien, il y aura deux (ou plus) runtimes. Et probablement chacun aura son propre modèle de mémoire.
De quoi parle-t-on: modèle de mémoire .