Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Concours > Le Sudoku : des nombres en folie ! > Prise de mémoire importante ! > Lecture du sujet

Prise de mémoire importante !

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne mick009 # Posté le 18/07/2008 à 11:00:52

Avatar
Groupe : Membres
Bonjour,
Comme indiqué dans le titre de ce post, j'aimerais savoir si 28 000 de Kilo-octets est beaucoup pour une grille de Sodoku ? (visible dans gestionnaire des tâches Windows > Processus util. mem)
Ma grille donne un joli aspect, mais je trouve que c'est un peu abusé non ?
Vous croyez qu'il s'agit de fuite de mémoire ? Je devrais utiliser Valgrind dans un tel cas alors....

Merci d'avance pour vos opinions

PS : c'est surtout un QPixmap qui est à l'origine de cela....
L'ennui c'est qu'il faut que j'afiche une image sur un widget donc je n'ai pas le choix -_-'
Édité le 18/07/2008 à 11:12:54 par mick009

Secret (cliquez pour afficher)
:diable: C'est diaboliquement efficace :diable:
 
Hors ligne Natim # Posté le 18/07/2008 à 12:00:15
Apprendre à coder c'est coder
Avatar
Groupe : Membres
Les images que tu affiches elles font combien de Mega ?

Image utilisateur
 
Hors ligne mick009 # Posté le 18/07/2008 à 14:08:17

Avatar
Groupe : Membres
361 Ko....

Secret (cliquez pour afficher)
:diable: C'est diaboliquement efficace :diable:
 
Hors ligne minirop # Posté le 18/07/2008 à 16:40:02
吸血鬼
Avatar
Modérateurs
et sans les images la mémoire descend à combien ?

pas commencés - en cours - finis - (dernier tome lu)
manga : Love Hina - Ichigo 100% - Fruits Basket - School Rumble - Death Note - Parmi Eux - One Piece (46) - Naruto (45) - Lovely Complex (10) - Fullmetal Alchimist (22) -> My Manga
IDE multiplateforme pour Qt Image utilisateur !! Qt @ IRC --> #qt-fr@irc.freenode.net
 
Hors ligne mick009 # Posté le 18/07/2008 à 17:14:18

Avatar
Groupe : Membres
Cela descend à environ 16 000 KOctets

Secret (cliquez pour afficher)
:diable: C'est diaboliquement efficace :diable:
 
Hors ligne GQMP # Posté le 18/07/2008 à 19:21:36
I sleep, you sleep, ...
Groupe : Membres
Et tu les charges combien de fois?
Hors ligne mick009 # Posté le 18/07/2008 à 19:30:51

Avatar
Groupe : Membres
Beh je l'ai comme attribut de ma classe...
Donc il ne charge qu'une seule fois !!

Autrement, vous n'aurez pas un lien ou de la documentation sur un sujet qui parle de comment éviter de gaspiller des ressources inutilement...
Des façons de coder proprement et tout....

Secret (cliquez pour afficher)
:diable: C'est diaboliquement efficace :diable:
 
Hors ligne heero78 # Posté le 18/07/2008 à 19:38:23
Clique sur mon avatar. ;)
Avatar
Groupe : Membres
lut, pour le lien "comment coder léger" je peut pas t'aider. ;p

mais c'était juste pour dire que j'utilisais presque 1mo d'images et mon programme ne dépasse pas les 15 000ko en moyenne.
Donc peut être qu'il fait que tu réfléchisse a ton architecture, ne pas crée trop d'attribut (crée des variables lors de l'exécution d'une tache, qui serons détruites a la fin de celle-ci)
Peut être aussi à tu crée des méthodes très semblables et que tu pourrai les regrouper en une seule méthode plus souple ?

Sinon je ne suis pas un expert en fuite mémoire ^^ dsl je peut pas t'en dire plus.
 
Hors ligne mick009 # Posté le 18/07/2008 à 19:43:22

Avatar
Groupe : Membres
Alors je pense que en C++, si je fais de la même manière que le code C, peut-être que cela n'utiliserais moins de mémoire.

Je m'explique : j'utilise une classe qui crée un QPixmap (et cette classe est crée beaucoup de fois). Cette classe charge un fichier de configuration. Donc je vais plutôt le mettre en fonction simple sans classe !

Je vais essayer et vous dire ce que ça donne !

Secret (cliquez pour afficher)
:diable: C'est diaboliquement efficace :diable:
 
Hors ligne coucou747 # Posté le 24/07/2008 à 01:33:30
Avatar
Groupe : Membres
[post a prendre avec precautions]
pour QT, j'ai aucune idee de la faisabilite de mes propos.
j'ai deja fait pas mal de prog, et recement, dans un projet java, j'avais 30 fois la meme image a afficher, je vais expliquer ici la technique qui consiste a utilier le meme objet pour dessiner les 30 images.
je ne connais pas QT, donc j'ignore si c'est possible ainsi en Cpp/QT

Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
class ImageManager{
    static Class class__ = ImageManager.class; // juste pour pouvoir trouver les images dans le jar
    static java.util.WeakHashMap<String, javax.swing.ImageIcon> hash = new java.util.WeakHashMap();
    // c'est cette table de hashage qui nous interesse
    public static javax.swing.ImageIcon getImage(String a){
        // si l'image est deja dans la table, on la renvoie
        if (hash.containsKey(a)){
            return hash.get(a);
        }
        // sinon on la cree
        java.net.URL url=class__.getClassLoader().getResource(a);
        javax.swing.ImageIcon icon = new javax.swing.ImageIcon(url);
        hash.put(a, icon); // et on la met dans la table
        return icon;
    }
}

c'est un multiton, plus d'explications sur ce design pattern ici : http://www.design-patterns.fr/Singleto [...] sation-d.html ou sur google.

le principe est simple : c'est du partage d'instances... c'est une sorte de singleton, mais etendu.
Hors ligne Assaf # Posté le 24/07/2008 à 11:30:35
Avatar
Groupe : Membres
Si je ne me trompe pas, Qt fait ça tout seul. Ca s'appelle "implicit sharing" (http://doc.trolltech.com/4.4/shared.html) : quand on copie un objct comme QImage ou QPicture, Qt ne copie pas toute l'image afin de préserver du temps et de la mémoire. L'image n'est vraiment copiée que quand elle est modifiée.
Hors ligne coucou747 # Posté le 24/07/2008 à 18:08:59
Avatar
Groupe : Membres
ca ne t'evite pas de le copier (sinon, on le ferait par reference...) ca t'evite d'avoir a le recreer...

Retour au forum "Le Sudoku : des nombres en folie !" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 338 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0713s (0.0274s)