Bonjour,
Résumé du problème :
Je suis confronté a deux problèmes mémoire sur une application delphi.
1°) une dérive mémoire au cours de l'exécution (je me charge de ce pb)
2°) l'incapacité, pour mon application à utiliser plus de 230 Mo. (c'est pour ce pb que je sollicite votre analyse)
Mon contexte informatique est le suivant :
Windows XP pro SP3 - 2Go de RAM
Delphi7 Entreprise.
Description du problème
Dans mon application j'ai un code de calcul qui dérive en mémoire. Pour bien mettre en évidence le problème j'ai encapsulé ce code dans une boucle de 1000 itérations.
Situation en début de boucle :
le processus occupe environ 190 Mo
environ 670 Mo sont occupés sur le poste
Situation aprè environ 500 boucles :
le processus occupe environ 220 Mo
environ 700 Mo sont occupés sur le poste
J'obtiens "Runtime erreur, mémoire insuffisante"
En lançant plusieurs fois la boucle j'obtiens toujours le même résultat, c'est à dire un plantage après environ 500 boucles et 220 Mo occupés par le processus.
J'ai essayé de changer $MINSTACKSIZE et $MAXSTACKSIZE mais le résultat reste le même sinon très voisin.
Ma question (enfin) existe-t-il une limitation intrinsèque aux exécutables produits avec delphi7 ? S'agit-il d'une limitation de XP ?
Merci de votre (longue) attention![]()







Répondre avec citation





Mais bon, crois-tu que les blocs soient si gros que, malgré les libérations, la mémoire ne soit pas désallouée ? A moins que, au pire des cas, il reste dans chaque bloque réellement alloué au système, il reste un objet qui lock sa libération ! Il y a peut être un processus de remappage de la mémoire pour essayer de libérer des blocks. Si tu as plus de précisions, ca m’intéresse, sinon, je creuserai un peu plus la question de mon coté



Partager