J'aurais pensé qu'il serait clair si l'allocation de mémoire est plus rapide dans le code managé que dans le code natif - but there seems to be some controversy. Peut-être que la gestion de la mémoire sous une machine virtuelle est plus rapide parce qu'il n'y a pas d'appels au système, mais je vois que la VM doit elle-même faire des appels périodiques au système pour plus de mémoire et la mémoire elle-même plutôt que l'OS.La gestion de la mémoire .NET est-elle plus rapide dans le code managé que dans le code natif?
Plutôt que de faire des affirmations non fondées comme je l'ai, veuillez fournir des liens vers des références qui soutiennent votre position.
Cela ne mènerait-il pas à une pile sans cesse croissante? Et la fragmentation de la pile? – Josh
Josh, c'est là qu'intervient le garbage collection. Il supprime les objets dé-référencés du tas, puis déplace tous les objets restants pour en faire un bloc contigu de mémoire utilisée, puis met à jour toutes les références affectées avec les nouvelles valeurs de pointeur. –
L'allocation de mémoire est donc rapide dans le code managé, mais la lenteur des événements de garbage collection occasionnels est le compromis. –