Question

Est-il possible de penser d'avoir à l'avenir un garbage collector automatique à Delphes? Il existe de nombreuses applications dans lesquelles un contrôle extrémement détaillé sur le moment de libérer un objet est pas si important et il est juste une chose supplémentaire à se soucier.

Pour de telles applications ayant une sorte de collecteur d'ordures qui fonctionne comme celui de java serait intéressant.

Il pourrait être défini dans les options du projet.

Est-ce que cela soit possible ou non?

Remarque : Je ne veux pas dire pour créer manuellement comme expliqué ici , je veux dire vraiment une caractéristique Delphi.

A déclaré d'une autre manière : est-il possible de définir FastMM d'agir comme collecteur de déchets

Était-ce utile?

La solution

collecte des ordures est possible dans C et C ++ , donc je ne vois aucune raison pour laquelle Delphi ne pouvait avoir aussi une telle fonctionnalité. Si vous croisez vos doigts et attendre assez longtemps, Delphi pourrait obtenir la collecte des ordures. Je ne vois pas cela comme une priorité pour Embarcadero, cependant.

Vous ne pouvez pas définir FastMM d'agir comme collecteur d'ordures parce que FastMM ne fait pas la collecte des ordures, donc il n'y a rien à définir. La fonction garbage collection future hypothétique Delphi aurait sans doute de coopérer avec le gestionnaire de mémoire, donc si une telle fonction existe toujours, et FastMM est encore le gestionnaire de mémoire à ce moment-là, alors FastMM gagnera probablement certains paramètres.

Autres conseils

  

Il existe de nombreuses applications dans lesquelles un contrôle extrémement détaillé sur le moment de libérer un objet est pas si important et il est juste une chose supplémentaire pour se soucier.

Je crois qu'il ya presque aucun de ces applications. La plupart du temps vous pensez que vous ne nécessitent pas de contrôle sur le moment où sont détruits vos objets, vous introduisez potentiellement un bug.

Maintenant, il y a en effet des cas où certains Les objets peuvent être ignorés en toute sécurité au plus tard être traitée par collecteur automatique. Mais gardez à l'esprit que vous devez réfléchir à cela pour tous vous opposeriez-vous avez l'intention de ne pas détruire manuellement. Et si elle détient des serrures? Et si elle a des fichiers ouverts, peut-être en mode partage-nier?

Il n'y a pas beaucoup d'un avantage en vous libérant ainsi de penser à détruire tous les objets, quand programmer en toute sécurité, vous devez toujours penser à détruire tous les objets.

Le but des éboueurs ne sont pas aux programmeurs libres de voir ce genre de choses à travers. Il est d'économiser un peu sur le comptage de référence et try / finally appelle.

vous avez des avantages et des inconvénients avec la collecte des ordures chose que je delphi est bon même sans GC (garbage collector). même des applications delphi prennent moins de mémoire que la taille des applications .net gérés, une fois la collecte des ordures aussi ralentir le processus, car il doit trouver les ressources non désirées, confirmer si elles sont nécessaires à nouveau et supprimer it.if dont il avait besoin à nouveau, il doit charger à nouveau (app devient lente) ou une erreur si il est bon delphi sans GC libérer manuellement est bon pour un programmeur professionnel

a duré versions de delphi à venir avec RTTI (ce qui est aussi une raison de la grande taille des applications) Je pense que RTTI (Runtime type d'information) peuvent nous aider à l'avenir. parce qu'il détient des informations sur le processus en cours et je pense peut-être à l'avenir une fonction similaire comme garbage collector est possible, mais pas sûr

mais delphi pour dot net 2007 et d'autres anciens delphi dot ont éboueur net + vlc mais maintenant dépréciée (le garbage collector de travail aussi Do not 100% bien)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top