2010-05-14 5 views
2

Y a-t-il des plans pour la gestion automatique de la mémoire? Quels sont les avantages de la gestion manuelle de la mémoire ... permet-elle de conserver de la mémoire sur le long terme?Pourquoi la gestion manuelle de la mémoire?

J'ai remarqué dans les applications Windows .Net - elles sont très lentes - est-ce dû en partie au fait que le garbage collector ne fonctionne pas correctement?

Répondre

0

Y a-t-il des plans pour la gestion automatique de la mémoire?

Sur Mac - La récupération de place est déjà effectuée sur 10.5.

Sur iPhone - Non (à partir de 4.0).

Quels sont les advantanges de la gestion manuelle mémoire ... faut-il conserver la mémoire à long terme?

Voir When NOT to use garbage collection?

+2

Citation nécessaire - pour dire que Apple n'a pas de plans pour la gestion automatique de la mémoire sur l'iPhone. –

+2

Il est également intéressant de noter que garbage collection sur Mac est disponible sur 10.5 et plus tard. –

+0

@Graham: Puis-je demander la citation pour le revers, pour dire que Apple * a * des plans pour GC sur l'iPhone? – kennytm

0

Les avantages de la gestion de la mémoire manuelle sont principalement que vous pouvez vous spécialiser la gestion de la mémoire spécifiquement pour votre application, ce qui rend optimale et permettant une optimisation « facile » (de la taille et de la vitesse). La gestion automatique de la mémoire est utile quand ce n'est pas nécessaire et même le comité C++ reconnaît que (il est prévu d'ajouter un garbage collector optionnel en C++) mais parfois vous devez contrôler ce qui se passe derrière la scène parce que vous avez une vue plus grande de vue de l'application que n'importe quel compilateur ou garbage collector.

Avoir le choix entre les deux est certainement très puissant, mais ce n'est pas disponible dans la plupart des langues.

0

En ce qui concerne les systèmes en temps réel, la récupération de place peut avoir des effets négatifs sur la réactivité du programme. Dans leur livre Small Memory Software, Weir et Noble discutent de certains de ces problèmes et vous pouvez lire à ce sujet à la fin de cette section of their book. Dans de nombreux cas, les programmeurs choisissent simplement d'écrire leurs propres routines de gestion de la mémoire qui résolvent ces problèmes.