Merci, c'est une bonne info.
J'ai créé un nouveau projet VCL et j'ai juste ajouter un bouton et mis le code suivant :
1 2 3 4
| TOpenDialog* MyDialog= new TOpenDialog(NULL);
MyDialog->Execute();
delete MyDialog;
SetProcessWorkingSetSize(GetCurrentProcess, 0xFFFFFFFF, 0xFFFFFFFF); |
Mémoire :
Au démarrage : 1696K
Après lancement du code : 6156K
Après un 2ème lancement de la fonction : 6868K
J'ai regardé avec process monitor quand on utilise cette fonction.
Il y a plein de buffer overflow. En voici un extrait.

La fuite de mémoire vient de là.
Donc, les fonctionnements de bases ne sont pas correctement gérés dans cette version.
Je comprends mieux pourquoi ils utilisent cette instruction dans certains de leur exemples.
ReportMemoryLeaksOnShutdown = true;
Je crois que je vais arrêter avec cette version, il y a vraiment trop de bugs pour gérer des logiciels en production et revenir sur des versions antérieures.
D'ailleurs dans la version XE6, ils ont corrigé un paquet de fuite mémoire.
http://edn.embarcadero.com/article/43754
Merci pour votre aide.
Partager