Avec les parties pile et tas de mémoire, laquelle est gérée par le garbage collector .NET?Avec les parties pile et tas de mémoire, laquelle est gérée par le garbage collector .NET?
Répondre
La mémoire sur le tas est gérée par le garbage collector. La mémoire de la pile est déterministe et est renvoyée au pool lorsqu'elle est hors de portée.
Juste le tas (géré). La pile peut avoir références aux objets, mais pas les objets eux-mêmes.
Cela dépend du niveau d'abstraction que vous envisagez. À un niveau géré, il existe un seul «tas géré», mais il est en fait divisé en tampons distincts pour prendre en charge la récupération de place générationnelle. Il existe également un tas non géré, à partir duquel le code non géré peut allouer de la mémoire dans l'ignorance béate du CLR. Tout cela est mis en œuvre avec un espace mémoire de processus sous-jacent du système d'exploitation dans lequel vivent tous les différents tas. L'histoire est compliquée par le fait que le GC peut compacter ses différents tas dans le cadre de la collecte. Lorsque cela se produit, le GC déplace la mémoire, ce qui signifie que les pointeurs peuvent être invalidés. Afin de répondre à cette demande, le GC se réserve le droit de modifier les références tout au long de la demande pour indiquer l'emplacement exact. Dans ce sens, le GC gère aussi la 'pile', puisque les références stockées sur la pile peuvent changer à l'endroit où elles pointent.
- 1. garbage collector .NET
- 2. .NET garbage collector mystery
- 3. alloca et ObjectiveC Garbage Collector
- 4. Garbage Collector et Core Graphics
- 5. Garbage Collector Flash Player
- 6. Garbage Collector et Core Foundation
- 7. Calmer un garbage collector excité
- 8. Vérifiez si l'objet peut être récupéré par le garbage collector
- 9. Enchaînement de tas et de pile
- 10. Xcode: Garbage Collector Setting
- 11. Est-ce que Marshal.ReleaseComObject appelle le garbage collector?
- 12. Garbage Collector asp.net
- 13. android garbage collector lingo
- 14. Eclipse: bouton Garbage Collector
- 15. Crash de Webview avec Garbage Collector ON
- 16. Garbage Collector détruit les objets d'Interface Builder
- 17. Garbage collector et la méthode finalize()
- 18. C# garbage collector référence croisée
- 19. Le garbage collector appelle-t-il Dispose()?
- 20. JVM - Tas et pile
- 21. Mémoire non gérée et mémoire gérée
- 22. Assemblage de Windows tas et pile?
- 23. Contrôle du garbage collector de Lua5.1
- 24. Que signifie CMS par rapport au Garbage Collector de Java?
- 25. Question sur les syndicats et la mémoire allouée par tas
- 26. Comment faire mon code Haskell utiliser Laziness et Garbage collector
- 27. Garbage collector qui fonctionnerait en dehors de mon application?
- 28. Pourquoi la pile et le tas sont-ils tous les deux nécessaires pour l'allocation de mémoire?
- 29. Exécuter garbage collector à partir de la ligne de commande?
- 30. Pour quel type d'applications le garbage collector peut-il devenir un problème?
"détruit" est peut-être un peu fort. Ignoré, peut-être. Mais à moins que le fil se termine, il se trouve principalement là. –
@ Marc, je ne pouvais pas trouver un bon moyen de le mettre. Êtes-vous d'accord avec mon changement? –
Cela dépend de ce que vous entendez par portée ... L'espace de pile peut (facultativement) être effacé quand * entrée * une méthode, mais IIRC il ne meurt rien en quittant. Donc, cela laisse juste stack-teardown à la fin du thread. –