La mémoire perdue et retrouvée... et libéré
Roy Nelson été surpris de constater que beaucoup de Delphes-écrit Dll ont été régulièrement une fuite de mémoire: après la traque de la cause, il a mis au travail pour trouver un mécanisme de plug ce qui s'est avéré être assez difficile de fuite.
Cet article a été longue: tout a commencé il y a deux ans, après une conversation avec un ancien collègue. La conversation porte sur le fait qu'ils ont des problèmes avec leur Dll ISAPI écrit en Delphi. Il me semblait que si les Dll ont été les fuites de 4 ko de mémoire à chaque fois qu'ils ont été chargés dans la mémoire. Finalement, ils ont changé de CGI pour résoudre le problème.
Ma réaction a été: 'Quoi? Mon Delphi perdre la mémoire? Jamais!' Je n'ai pas enquêter sur cette toute nouvelle à l'époque. Cependant, il y a deux mois, j'ai vu quelqu'un parler d'un 'connu' de la fuite dans la VCL sur un groupe de discussion. J'ai été intrigué, comme la magie de 4ko nombre a été mentionné. Tout le monde semblait savoir à ce sujet, et même ce qui était à l'origine de la fuite. Ce qui se passait ici? J'ai ensuite eu un coup d'oeil au code et j'ai vu pourquoi il n'avait pas été branché.
Cette fuite en Delphi Dll expose lui-même dans certaines conditions uniquement. La condition la plus importante est que les Contrôles de l'unité doit être référencé quelque part dans les unités utilisées pour compiler la DLL. Deuxièmement, la DLL ne doit pas faire usage de paquets. Enfin, la DLL doit être explicitement chargés et déchargés à l'aide de la LoadLibraryXX et FreeLibrary appels d'API.
CLIQUEZ ICI pour l'article complet.
La memoire perdue et retrouvee... et libere
La memoire perdue et retrouvee... et libere : Plusieurs milliers de conseils pour vous faciliter la vie.
Roy Nelson ete surpris de constater que beaucoup de Delphes-ecrit Dll ont ete regulierement une fuite de memoire: apres la traque de la cause, il a mis au travail pour trouver un mecanisme de plug ce qui s'est avere etre assez difficile de fuite.
Cet article a ete longue: tout a commence il y a deux ans, apres une conversation avec un ancien collegue. La conversation porte sur le fait qu'ils ont des problemes avec leur Dll ISAPI ecrit en Delphi. Il me semblait que si les Dll ont ete les fuites de 4 ko de memoire a chaque fois qu'ils ont ete charges dans la memoire. Finalement, ils ont change de CGI pour resoudre le probleme.
Ma reaction a ete: 'Quoi? Mon Delphi perdre la memoire? Jamais!' Je n'ai pas enqueter sur cette toute nouvelle a l'epoque. Cependant, il y a deux mois, j'ai vu quelqu'un parler d'un 'connu' de la fuite dans la VCL sur un groupe de discussion. J'ai ete intrigue, comme la magie de 4ko nombre a ete mentionne. Tout le monde semblait savoir a ce sujet, et meme ce qui etait a l'origine de la fuite. Ce qui se passait ici? J'ai ensuite eu un coup d'oeil au code et j'ai vu pourquoi il n'avait pas ete branche.
Cette fuite en Delphi Dll expose lui-meme dans certaines conditions uniquement. La condition la plus importante est que les Controles de l'unite doit etre reference quelque part dans les unites utilisees pour compiler la DLL. Deuxiemement, la DLL ne doit pas faire usage de paquets. Enfin, la DLL doit etre explicitement charges et decharges a l'aide de la LoadLibraryXX et FreeLibrary appels d'API.
CLIQUEZ ICI pour l'article complet.
La mémoire perdue et retrouvée... et libéré
By commentfaire
La mémoire perdue et retrouvée... et libéré : Plusieurs milliers de conseils pour vous faciliter la vie.