PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → comment liberer de la memoire
comment liberer de la memoire
Débuté par Jean-François Carneiro, 29 avr. 2005 18:32 - 4 réponses
Posté le 29 avril 2005 - 18:32
mon application tourne en temps reel dans une tread infini (divers calcules tous les x secondes + envoie sur un port serie les resultats)

la memoire "in use" n'arrete pas de grimper jusqu'a ce que le programme soit ralenti au maximum (Freeze) lorsqu'il n'y a plus assez de memoire

pourtant je ne crée pas d'objet dynamique.

comment lancer un ramase miette ? ou liberer de la memoire ?

merci
Posté le 02 mai 2005 - 13:15
j'ai trouvé le coupable, la fonction iniEcrit + CompactFlash

je pense qu'il y a un cache memoire a vider, mais comment faire ?

merci
Posté le 04 mai 2005 - 15:05
Confirmation du problème,

Test de reproduction : Faire un Thread en boucle infini, qui met à jour tous les 5 secondes 20 paramètres dans un fichier .INI stocké sur de la CompactFlash. Instruction utilisée pour écrire et mettre à jour le .INI : IniEcrit.

Conséquence : La mémoire gonfle, gonfle, .......puis le tout ralenti........puis le tout bloque.

A+
Posté le 02 septembre 2005 - 21:37
Bonjour,

je rencontre aujourd'hui le même problème que vous.
J'ai voulu contourner le problème par un appel aux fonctions de l'API Windows, mais en vain.
La ligne de code que j'ai utilisé est la suivante:
AppelDLL32("kernel32", "GetPrivateProfileStringA" , &lpApplicationName, &lpKeyName, &lpDefault, &lpReturnedString, nSize, &lpFileName)
J'ai aussi essayé avec WritePrivateProfileStringA, mais l'application plante lamentablement en me disant qu'elle n'arrive pas à trouver kernel32 !??!

Je ne sais plus quoi faire. Et je me vois mal dire a mes clients : "Votre application plante, c'est normal, a chaque fois que vous utilisez une fonction, il faut reseter votre pocket !"

Avez vous réussi à résoudre vos problèmes ? Comment ?
D'avance merci.
Posté le 03 septembre 2005 - 14:01
J'ai fait un composant qui "simule" les fonctions inixxx dans un fichier HF
Si tu veux contact moi en privé .... athanor.si_no_spam@laposte.net sans le
_no_spam.

"MAHIEU Didier" <savsoft@ariahorti.fr> a écrit dans le message de news:
43187953$1@news.pcsoft.fr...
Bonjour,

je rencontre aujourd'hui le même problème que vous.
J'ai voulu contourner le problème par un appel aux fonctions de l'API
Windows, mais en vain.
La ligne de code que j'ai utilisé est la suivante:
AppelDLL32("kernel32", "GetPrivateProfileStringA" , &lpApplicationName,
&lpKeyName, &lpDefault, &lpReturnedString, nSize, &lpFileName)
J'ai aussi essayé avec WritePrivateProfileStringA, mais l'application
plante lamentablement en me disant qu'elle n'arrive pas à trouver kernel32
!??!

Je ne sais plus quoi faire. Et je me vois mal dire a mes clients : "Votre
application plante, c'est normal, a chaque fois que vous utilisez une
fonction, il faut reseter votre pocket !"

Avez vous réussi à résoudre vos problèmes ? Comment ?
D'avance merci.