Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
J'ai développé une application PPC (avec Windev Mobile donc) qui enregistre quelques données dans une base HyperFile.
Les enregistrements fonctionnent sans problème, mais à chaque fois, la mémoire utilisé par l'appli gonfle de manière sensible, pratiquement 1Mo, ce qui n'est pas concevable du tout.

Voici le code que j'ai fait pour l'enregistrement:

SI OuiNon(1, "Etes-vous certain de vouloir clôturer ce bon?") ALORS
InvBons.auteur = ExtraitChaîne(pAuteur, 1, " - ")
InvBons.depot = ExtraitChaîne(pDepot, 1, " - ")
InvBons.chantier = ExtraitChaîne(pChantier, 1, " - ")
InvBons.type = "E"
InvBons.date = DateSys()
SI PAS HAjoute(InvBons) ALORS
Info("Erreur lors de l'enregistrement.")
FIN
HLitDernier(InvBons)
IDBonTemp = InvBons.ID
j = TableOccurrence(TableArticles)
POUR i = 1 A j
InvArticles.IDBon = IDBonTemp
InvArticles.article = TableArticles.article[i]
InvArticles.description = TableArticles.Descr[i]
InvArticles.quantite = TableArticles.quant[i]
HAjoute(InvArticles)
FIN
Ferme()
FIN

Moi je ne vois rien de spécial là dedans, mais il se passe sans doute quelque chose que j'ignore, et comme cela fini par planter le Pocket au point de devoir le reseter, j'aimerais bien régler ce souci...

Merci!

Contribution le : 26/10/2005 15:16
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Salut,

J'aurais peut etre une suggestion a te donner au lieu d'utiliser une table mémoire (TableArticle) qui est assez lourd a gérer en memoire pourquoi n'utilises tu pas un tableau dynamique plus leger en mémoire ?

a+++

Contribution le : 26/10/2005 18:22
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
Alors en fait, je viens de remarquer un truc.
En fait, la mémoire n'est pas libérée lorsque je ferme une fenêtre, ce qui fait que plus j'en ouvre, plus l'utilisation mémoire enfle, que je les ferme ou pas.

Mes fenêtres n'ont pourtant rien de spécial, et je viens même de faire le test avec une fenêtre tout ce qu'il y a de plus vide.
Je commence avec 22.40Mo de libre, j'ouvre la fenêtre dans le logiciel avec un simple "ouvre", je passe à 21 et des brouettes.
Je ferme cette fenêtre avec la croix... je reste à 21 et des brouettes...

Y'a-t-il un moyen de vider la mémoire ou je ne sais quoi d'autre SVP? Car c'est vrai ce qu'on peut appeler ennuyeux...


Merci!

Contribution le : 28/10/2005 12:01
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Le problème pourrait venir du fait de fermer par la croix.
Tu devrais peut-être créer un bouton en abandon qui te garantirait que tu executes le code de fermeture de ta fenêtre.
Tiens nous au courant ...

Contribution le : 28/10/2005 12:13
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
Je viens de tester en ajoutant un bouton avec le code "ferme()" dedans, qui me ferme donc la fenêtre sur laquelle je suis, mais le résultat est malheureusement le même.

Voici la mémoire libre que j'ai:
21.89 -> Ouverture de l'appli
21.10 -> Ouverture d'une fenêtre dans l'appli
21.20 -> Fermeture de cette fenêtre par la croix ou un bouton "ferme()"

Comme vous le voyez, il y a une "certaine perte" au niveau mémoire libre à chaque fois, et lorsque ce total arrive à 0... plantage du PDA et reset obligatoire...

En gros, à l'aide... si vous avez d'autres idées. :)


Après, peut-être qu'il y a des trucs à spécifier lors de la création de l'exécutable?

Contribution le : 28/10/2005 14:03
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Utilisateur WDF
Inscrit:
28/06/2005 15:02
De Aurillac Cantal Auvergne
Post(s): 91
Hmmm.. intriguant. J'ai tout de même quelques idées :

Il se pourrait que le problème ne vienne pas de ton programme, mais plutôt de ton PDA. Peut-être que l'OS ne libère pas correctement la mémoire. Pour être sûr, il faudrait tester ton appli sur un autre PDA, et vérifier que le problème ne survienne pas dans d'autres applications.

Sinon, quelques questions : crées-tu des instances de classe à l'intérieur de tes fenêtres ? Si tel est le cas, il est possibles que celles-ci ne soient pas détruites (pour je ne sais quelle raison) à la fermeture de la fenêtre, donc, utiliser de plus en plus de ressources.

Enfin, je ne suis pas sûr du tout de ce que j'avance, mais la 1ere piste me semble plausible (plus que la seconde). Le problème était présent sous windows 98, qui ne libérait pas les ressources mémoire (d'où la fréquente apparition des écrans bleus de la mort qui tue ^^).

Voilà, j'espère faire avancer un peu le schmilblik ^^ Ciao

Contribution le : 28/10/2005 14:45
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
Le PDA que j'utilise est un Symbol avec lecteur codes barres avec Windows Mobile 2003.

J'en ai en tout 3, et le souci est présent sur les 3, mais je vais essayer sur un autre PDA pour voir ce que cela donne...

Merci pour la piste. :)

Contribution le : 28/10/2005 15:38
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
Je viens d'essayer sur un autre PDA. Le souci est le même... :(

J'ai fait un nouveau projet avec seulement 2 fenêtres:
- Accueil, où se trouve simplement un bouton d'ouverture de fenêtre
- Fen2: qui est la fenêtre ouverte, et qui ne contient qu'un seul bouton, de fermeture d'elle-même (ferme())

Même chose: lors de la fermeture de la seconde fenêtre, toute la mémoire allouée ne revient pas...

Contribution le : 02/11/2005 16:34
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour Furax,

Je ne suis en mesure d'apporter une solution directe à votre problème. Toutefois, je vous invite à procéder avec méthode dans la reccherche de cette fuite de mémoire.

En premier lieux faire une copie de votre projet en l'état.
Ensuite, relever au moyen d'une trace ou d'une écriture dans un fichier texte les niveaux d'occupation mémoire vive avant et après l'utilisation de la fenêtre.

Efin, surprimer progressivement dans la fenêtre tout les traitement qui n'empèche sa fermeture. Le procéder par élimination progressive (avec tests intermédiaires) permet parfois de mettre au jour une portion de code 'anodine' telle que l'affectation d'un tableau dynamique non libéré etc etc...

Si après cela la fuite persiste, il faudra tracer précisément le code restant pour mesurer tant l'allocation que la libération en récupérant les niveaux avant et après de chaque appel de procédure/fonction...


Contribution le : 02/11/2005 17:25
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle

Inscrit:
19/11/2002 12:20
Post(s): 390
Question bête, cette "fuite" n'existe pas pour d'autres applications PPC "normales" comme IE ou Windows Media Player?

Contribution le : 02/11/2005 18:14
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Question bête : Quelle est la version de windev mobile utilisée ?

Pour infos : J'avais utilisé windev mobile 8 et j'ai eut quelques soucis avec hyperfile mobile donc je me suis contenter d'utiliser des fichiers textes ...

Essaie de désactiver les ordres hyperfile Hxxxx pour voir si le problème persiste. A chaque HlitXxxx, un enregistrement est chargé en mémoire à voir peut être de ce coté.

Contribution le : 02/11/2005 22:06
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation mémoire qui gonfle
Stagiaire WDF
Inscrit:
21/07/2005 14:55
Post(s): 19
J'utilise Windev Mobile 9.

Le prob est qu'au départ, je pensais que ça pouvait venir de mon code, mais comme je l'ai dit quelques messages plus haut, même avec des fenêtres vides c'est la même chose. Dans une moindre mesure évidemment mais ça bouffe toujours de la mémoire.

J'ai joint PCSoft hier au téléphone qui m'ont ne pas être au courant du problème, mais m'ont demandé de leur envoyer mon petit projet avec les deux fenêtres "vides" pour qu'ils puissent tester ça. j'espère avoir la réponse rapidement.

Contribution le : 03/11/2005 09:34
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2