Petite appli - 17 Mo en mémoire !

LeChatNoirLeChatNoir Membre, Modérateur
16:29 modifié dans API AppKit #1
Slt,
Dans un sujet précédent (chargement/déchargement d'un nib), je pose des questions sur comment décharger un nib file.

En fait, je pose ces questions car mon petit programme contient 2 nib :
* 1 pour le menu (qui ne contient que ca, pas de fenêtre),
* 1 pour une sorte de fenêtre de préférence à  moitié construite et pas très complexe.

J'ai 2/3 classes pour implémenter le modèle qui, lorsqu'il s'initialise ne contient que qques objets.

Bref, un truc très basic.

Mais quand je vais dans moniteur d'activité, je constate que l'appli résultante prend 13 Mo d'entrée puis 17 Mo lorsque je charge ma fenêtre de pref !!!!

Ca me paraà®t énorme non ?
Comment ca se fait ?
C'est toujours gourmand comme ça une appli Cocoa ?

A titre d'exemple, mon moniteur d'activité ne prend que 9 Mo alors que l'appli est 10 fois plus complexe que mon petit bout de code !?

Réponses

  • Eddy58Eddy58 Membre
    16:29 modifié #2
    Non ce n'est pas normal que ça mange autant, par contre pour te dire d'où ça vient c'est pas évident... Tu utilises des images ?  :o
  • aranaudaranaud Membre
    16:29 modifié #3
    Est-ce que sa pourrait venir des frameworks qui sont chargés en mémoire ?
  • LeChatNoirLeChatNoir Membre, Modérateur
    16:29 modifié #4
    Non je dois avoir 2 petits icones que je n'utilise même pas encore.
    Pour les frameworks, je sais pas trop.
    J'ai les includes classiques dans mes en-têtes rien de plus.

    A la limite, je pourrais poster une archive de mon projet pour que vous puissiez voir mais y a vraiment pas grand chose...

    J'essaye de poster ça ce soir.
  • LeChatNoirLeChatNoir Membre, Modérateur
    16:29 modifié #5
    Bon voilà  le projet. Rien de bien passionnant. J'ai juste attaqué le dev du gestionnaire de sites.
    Mais rien que ça, ca prend entre 5 et 9 Mo de RAM (ca a baissé suite à  suppression du dossier build et recréation ?).

    Si qqu'un a une explication.

    Merci !

    [Fichier joint supprimé par l'administrateur]
  • Eddy58Eddy58 Membre
    16:29 modifié #6
    Bon, j'ai jeté un coup d'oeil, la quantité de mémoire utilisée par ton appli est curieusement variable. Au premier lancement, j'obtenais 12 Mo. Et lors de deux cliques successifs sur Close, plantage, ce qui est normal vu qu'au 2e clique ton code tente de releaser une instance releasée au premier clique. Ce qui est curieux, c'est qu'après ce plantage, je relance, puis là  ça ne prend plus que 6 mégas en mémoire, puis 9 en ouvrant la fenêtre. Puis ensuite en refaisant quelques essais je suis monté à  21 mégas...c'est curieux. Il y a une erreur lors de la compilation pour une librairie inexistante, mais en supprimant le référence à  la librairie dans les ressources ça change rien. A ta place je tenterais de construire un projet tout neuf, rajouter élément par élément (toutes les classes annexes qu'il y a, rajoute les dans le projet quand tu en as vraiment besoin) et tester la mémoire à  chaque ajout, comme ça tu verras à  quel moment ça va pas. :o
  • LeChatNoirLeChatNoir Membre, Modérateur
    16:29 modifié #7
    Ok merci de m'avoir consacré un peu de temps  ::)

    Par contre, je comprend pas comment tu peux cliquer 2 fois de suite sur ok. Ca ferme pas la fenêtre ?
    C'est sensé la fermer... A moins que tu aies commenté le close à  des fins de tests ?

    En tous les cas, merci ! J'essayerai ton conseil (quoique le moindre projet simple sur mon ibook prend bcp de RAM...).
  • Eddy58Eddy58 Membre
    septembre 2005 modifié #8
    dans 1126978543:

    Par contre, je comprend pas comment tu peux cliquer 2 fois de suite sur ok. Ca ferme pas la fenêtre ?
    C'est sensé la fermer... A moins que tu aies commenté le close à  des fins de tests ?

    Cliquer sur Ok ferme la fenêtre. En faites c'est le bouton Cancel qui produit le plantage. :)
  • LeChatNoirLeChatNoir Membre, Modérateur
    16:29 modifié #9
    Ah ouais, c'est normal.
    Bon ben merci pour le tests. Je vais voir à  refaire un projet tout neuf un de ces 4.
    a+
  • aranaudaranaud Membre
    septembre 2005 modifié #10
    Peut-être que l'application MallocDebug pourrait d'aider à  voir ce qui occupe de la place.

    Par exemple pour mon application rien que l'object NSApplicationMain 2,4 Mo - start 2,5 Mo - NSApplication run 2,2 Mo - ...

    [Fichier joint supprimé par l'administrateur]
  • LeChatNoirLeChatNoir Membre, Modérateur
    16:29 modifié #11
    Oui, faudrait que je me penche sur MallocDebug mais je comprend pas tout à  cette appli. Je trouve difficile de s'y retrouver dans les objets !

    Par contre, une petite appli refaite de 0 avec juste une fenêtre et un bouton prend également plus de 10 Mo de RAM !

    Je suis en train de me demander si Cocoa n'est pas naturellement gourmand ?!

    Où alors, c'est mon environnement de dev qui est foireux...

    Vos appli prennent autant de place mémoire ?
  • BruBru Membre
    16:29 modifié #12
    Sur CocoaDev, y'a un article sur la taille des applis sous OSX :
    http://cocoadev.com/index.pl?MemoryManagement
    (vers la fin de la page).

    Lis, et compare avec tes propres résultats.

    .
Connectez-vous ou Inscrivez-vous pour répondre.