Si je comprends bien à propos de garbage collection dans .NET CLR, alors GC se produit lorsque l'espace pour une allocation des types de référence est nécessaire, mais il n'y a plus de place sur le tas géré. Alors, le tas géré a-t-il une limite quant à la taille qu'il aura? Merci.Je pensais que le tas géré a augmenté dynamiquement?
1
A
Répondre
1
Oui, pour les processus 32 bits, l'espace d'adressage virtuel est limité à 2 Go (plus réaliste d'environ 1,5 Go lorsque vous prenez en compte tous les frais généraux du CLR). La limite pour les processus 64 bits est de 8 To.
Cela ne signifie pas que le tas est d'abord de 2 Go, mais que le tas peut atteindre cette taille. Le CLR allouera plus de mémoire si nécessaire. Le tas a des générations différentes (numérotées de 0 à 2) et chacune de ces générations a un seuil. C'est la réunion de ces seuils respectifs qui déclenche la collecte des ordures. Au cours de l'exécution de votre application, ces seuils seront ajustés pour répondre au mieux aux besoins de performance de votre application.
Questions connexes
- 1. Java tas d'espace dans netbeans .. mais j'ai déjà augmenté la taille du tas!
- 2. MainForm.Refresh(); ne fait pas ce que je pensais qu'il ferait
- 3. Int32^i = gcnew Int32() est-il alloué sur le tas géré?
- 4. Débutant Django Question: Je ne trouve pas de données Je pensais que je prédéfinis dans un formulaire
- 5. Question générale: Java a le tas et la pile locale. Pouvez-vous accéder à n'importe quel objet du tas?
- 6. Python et le tas intégré
- 7. Has_many nom de la classe ne fonctionne pas comme je le pensais?
- 8. Comment intégrer/mélanger le code géré et non géré
- 9. Comment puis-je définir le ValidationGroup dynamiquement?
- 10. Taille de tas commise vs réservée.
- 11. Libérer de la mémoire sur le tas. Devrais-je et comment?
- 12. Je pensais que curtime(), now() et current_timestamp sont des valeurs de date-heure par défaut valides dans MySQL?
- 13. Pourquoi Qt a-t-il besoin d'allouer des objets enfants dans le tas?
- 14. constantPoolClass dans Java tas?
- 15. min tas en python
- 16. Est-il possible de modifier dynamiquement la taille maximale du tas Java?
- 17. Géré DirectX
- 18. Faire le dossier non géré par SVN
- 19. Comment puis-je indexer un tas de fichiers en Perl?
- 20. Comment vider le processus .NET pour que Visual Studio 2008 le charge en tant que vidage géré?
- 21. Qu'est-ce que le tas tolérant aux pannes de Windows 7?
- 22. Détecter le mode débogage dans C++ géré
- 23. Est-ce que quelqu'un a pu éditer du texte dans un contrôle OpenWYSIWYG dynamiquement?
- 24. Code de rappel non géré de C géré
- 25. Je pense avoir perdu mon contexte d'objet géré
- 26. Dernier gestionnaire d'exceptions géré dans un exécutable mixte natif/géré?
- 27. diassemble géré code problème
- 28. code dll non géré
- 29. Est-ce que CommunicationExceptions doit être géré sur le côté serveur dans WCF?
- 30. WPF - BitmapEffect géré
La récupération de place ne se produira-t-elle qu'après l'utilisation de 2 Go de mémoire par le tas? Il semble que la récupération de place ne fonctionnera jamais pour la plupart des applications, car c'est une limite assez importante. –
Existe-t-il un moyen de surveiller les limites de taille de chaque génération? Je voudrais vraiment un moyen de bas niveau de surveiller quand une collecte de place se produit pour approfondir ma compréhension. –
Vous pouvez bien sûr! Vous pouvez utiliser perfmon - s'il vous plaît voir http://codebetter.com/blogs/raymond.lewallen/archive/2005/03/31/60938.aspx –