PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD15] Libérer mémoire application
[WD15] Libérer mémoire application
Débuté par Julien Bernard, 04 mai 2010 18:36 - 8 réponses
Posté le 04 mai 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
Posté le 05 mai 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
Posté le 05 mai 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
Posté le 06 mai 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
Posté le 23 mai 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.
Posté le 04 mars 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... -_-
Posté le 04 mars 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. :-)
Membre enregistré
67 messages
Popularité : +1 (1 vote)
Posté le 07 janvier 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
Membre enregistré
63 messages
Popularité : +4 (4 votes)
Posté le 06 mai 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