Bonsoir tout le monde.
Je me permet de faire appel à vos lumières car je sèche sur un problème.
Il y a de ça plusieurs mois, je me suis lancé dans l'apprentissage du C++ et suis donc passé par Qt et la SFML.
Dans le but de m'améliorer et surtout de manipuler ce que j'ai appris je me suis lancé dans le codage d'un jeu vidéo (via SFML), un Zelda like, que j'ai mis entre parenthèse pour créer une application pour mon travail. J'avais alors demandé un peu d'aide ici http://www.developpez.net/forums/d15...besoin-d-aide/
Travaillant dans un magasin, mon application a pour but d'aider les clients à trouver les cartouches d'encre correspondant à leurs imprimantes en sélectionnant la marque, puis encre ou laser, puis la famille et enfin le modèle.
Mon application est maintenant terminée (enfin la v1) et est fonctionnelle. J'ai codé cette application via Qt 5.4.1.
J'ai cependant un problème de fuite de mémoire...
Ma "v1" est constituée, au niveau code, d'un "joli bordel".
Pour me simplifier le travail pour les ajouts (modèles d'imprimantes...) j'ai une base de données sous forme d'un fichier .txt et mon application qui va lire les informations correspondant aux boutons du modèle cliqué.
Mon application en elle même est composée :
- d'une page principale de sélection de marques qui est fixe et ne doit pas être fermée
- d'une fenêtre de sélection de type (encre ou laser) - par marque (qui se ferme lors de l'ouverture de la suivante ou pour revenir à la page principale)
- d'une fenêtre de sélection de famille - par type et par marque (qui se ferme lors de l'ouverture de la suivante ou pour revenir à la page principale)
- d'une fenêtre de sélection de modèle - par famille, type et marque (qui se ferme lors de l'ouverture de la suivante ou pour revenir à la page principale)
- et enfin d'une fenêtre finale qui affiche les références des cartouches - cette page est commune à tous les modèles (qui se ferme lors de l'ouverture de la suivante ou pour revenir à la page principale)
Donc : 6 marques, 2 type par marque, plusieurs famille par type, quelques milliers de modèles en tout et une page finale... ça donne le main.cpp + 175 ".cpp" + 175 ".h" (d'où le "joli bordel"... sans compter les quelques images pour que ça soit joli et la base de données .txt).
Quand j'exécute mon application elle utilise environ 440 Mo de mémoire vive à peine ouverte et à chaque fois que je clique sur un bouton (pour ouvrir la page suivante) cela me rajoute 5 Mo à chaque fois seulement au 1er lancement de chaque page (exemple, si j'ouvre 10 fois la page de la marque 1, je n'ai qu'une fois 5 Mo ajouté).
Voilà mon problème...
Et vu que c'est une application qui tournera en permanence tout au long de la journée, cela va vite saturer la mémoire vive...
Auriez-vous une idée pour régler mon problème ?
Par avance merci
P.S. : le code arrive dans mon post suivant pour faciliter la lecture
Partager