PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD15] Libérer mémoire application
[WD15] Libérer mémoire application
Iniciado por centaure, 04,may. 2010 18:36 - 8 respuestas
Publicado el 04,mayo 2010 - 18:36
Bonjour,

Mon application doit traiter un grand nombre d'images dont le poids peut être assez important et j'aimerai savoir comment libérer la mémoire utilisée afin de ne pas ralentir les traitements.

Merci par avance pour votre aide
Publicado el 05,mayo 2010 - 16:26
Suite à des soucis de ma propre appli (grosse consommation de requêtes + machine avec faible Qt de mémoire) j'ai du mettre en place une fonction qui libère de la mémoire. La voici...

exécute la dans un timer ou a la fin d'un gros traitement et tout devrait rentrer dans l'ordre... ;)

LOCAL
nHDL est entier
RetourFonction est un entier


SI SysVersionWindows(sysVersionPlateForme)="NT" ALORS
nHDL=API("Kernel32","GetCurrentProcess")
RetourFonction=API("psapi","EmptyWorkingSet",nHDL)
SI RetourFonction = 0 ALORS Erreur(ErreurInfo()) ; RETOUR
FIN
Publicado el 05,mayo 2010 - 18:41
Bonjour,
Merci pour cette fonction, mais elle n'est disponible que pour NT ?
Comment ça se passe pour XP, Vista, Seven, ...
merci par avance
Publicado el 06,mayo 2010 - 16:06
Salut,
Une petite consultation de l'aide sur la fonction répondra à ta question...

Mathieu

Le 2010-05-05 11:41, Julien Bernard a écrit :
Bonjour,
Merci pour cette fonction, mais elle n'est disponible que pour NT ?
Comment ça se passe pour XP, Vista, Seven, ...
merci par avance
Publicado el 23,mayo 2010 - 18:15
Bonjour,

Je tenais juste à vous remercier pour ce morceau de code qui me sauve tout simplement mon projet. En effet, j'ai créer une classe relativement complexe qui est auto-réflective, WinDev ne libérant pas la RAM quand l'objet est détruit (destructeur), l'application monté à plus de 2go de RAM et finissais tout simplement par planter. Là, je récupérer la RAM, et l'application ne devient plus aussi gourmande.

Merci.
Publicado el 04,marzo 2013 - 17:41
Un grand merci pour ce petit bout de code qui change la vie !!
En effet j'avais de même des problèmes d'occupation mémoire qui était de plus en plus gros.
Grace à ce code j'ai pu solutionner ce problème très gênant !

Merci pour cette astuce !

Par contre je suis curieux de savoir comment le propriétaire du code fournie l'as trouvé et à la suite de quelles recherches... parce que j'ai moi même essayer de retrouver les informations une à une et je suis tomber sur une bribe d'informations de Windev qui renvoie aussi au site de Windows... Merci Windev pour cette prècieuse info... -_-
Publicado el 04,marzo 2013 - 19:18
Bonjour,

Génial !

Ce bout de code sauve mon projet également.

J'ai un traitement d'édition de données assez lourd, et sur une bécane un peu juste,
l'impression d'un état complexe partait en erreur de façon aléatoire.

J'avais fini par suspecter un problème de mémoire. Avec la petite routine fournie ici, mon état complexe ne plante plus du tout et je peux enfin utiliser la fonction iParamètre(iRTFAvecImagesEtTableaux,Vrai) qui bizarrement nécessitait beaucoup de ressources mémoire.

Encore merci à celui qui a trouvé cette astuce. :-)
Miembro registrado
71 mensajes
Publicado el 07,enero 2019 - 12:43
Bonjour,

le dernier post remonte à loin mais sait-on jamais!

Je suis intéressé également par ce petit bout de code qui semble très pratique
Mais je m'interroge sur les possibles effets de bord d'un tel code.
Est-ce que vide la mémoire comme le fait ce code ne risque pas de nous faire perdre des choses mises en mémoire dans notre application, voir dans d'autres applications en cours sur la machine!? :o

--
______________________________________
Vincent DUBREIL
Miembro registrado
63 mensajes
Publicado el 06,mayo 2019 - 17:22
Bonjour

Très bonne remarque!
Je suis inquiet d'utiliser ce type de subterfuge pas très clean!! quelqu un a un retour la dessus?
Mieux! Quel sont les traitement qui font gonfler la bête!! passage de paramètres 'dynamique' ou structures?? comment chercher un fuite de mémoire?

Merci pour vos retours



Vincent DUBREIL a écrit :
Bonjour,

le dernier post remonte à loin mais sait-on jamais!

Je suis intéressé également par ce petit bout de code qui semble très pratique
Mais je m'interroge sur les possibles effets de bord d'un tel code.
Est-ce que vide la mémoire comme le fait ce code ne risque pas de nous faire perdre des choses mises en mémoire dans notre application, voir dans d'autres applications en cours sur la machine!?

--
______________________________________
Vincent DUBREIL


--
Nicolas Magnien
oXalis [Supervision Industrielle - Procédés Batch - ERP - MES]
www.decobecq-automatismes.fr