Fuite mémoire / CloseScreen / CloseWindow

Forum Amiga Coding Fuite mémoire / CloseScreen / CloseWindow

  • Ce sujet contient 4 réponses, 2 participants et a été mis à jour pour la dernière fois par astrofra, le il y a 3 années et 10 mois.
  • Créateur
    Sujet
  • #125854
    seb31
      • Level 0 - Newbie
      • Messages : 8

      Bonjour à tous,

      Je cherche un peu d’aide pour éviter dans un programme C d avoir une fuite mémoire lors de la fermeture de l’écran & fenêtre à la sortie.

      Je suis face a un souci en effet lors de la fermeture des écrans fenêtre , StormC me dit que les écrans et fenêtres ne sont pas fermés !  pourtant le résultat de CloseScreen est bien à TRUE et les écrans se ferment , mais il manque systématiquement une 50aine de Ko a chaque exécution en CHIP ram. Je ferme bien les fenêtres/écrans/libraries dans l’ordre inverse de leur ouverture… selon tous les tutos & exemples…

      dans le même environnement, j ai des projets d’exemples qui compilent bien et relâchent bien la mémoire des écrans/fenêtres mais d’autres pas… pourtant ils sont très simples , par exemple :

      l' »exemple 1″ de Amiga C  Manual (ACM sur aminet) ne libère pas la mémoire

      par contre l' »anim_ex » des Rom Kernal (animtools) oui…

      j y perds mon latin C et  je sèche !

      ma config : A500 OS 3.2 PIStorm 68030 + StormC4 (compile sous stormC3)

      Merci d’avance, je suis sur que quelqu’un a déjà du avoir ce souci au moins 1 fois!

      impossible de trouver quelque aide que ce soit sur internet, si vous avez une idée je prends :)

       

      Sébastien

       

       

    Affichage de 4 réponses de 1 à 4 (sur un total de 4)

    Partager sur vos réseaux sociaux préférés :
    Facebooktwitterredditpinterestlinkedintumblrmail

    • Auteur
      Réponses
    • #125855
      seb31
        • Level 0 - Newbie
        • Messages : 8

        Bon il semblerait que ce soit bon maintenant ….

        j’ai retirer les directives static de newscreen & newwindow…

         



        #125856
        astrofra
          • Level 4
          • Messages : 126

          Comment est-ce que tu mesures la quantité de mémoire disponible en sortie de programme ?
          Si tu fais un ‘avail’, ça peut t’induire en erreur car le système ne libère pas forcément tout ce qui pu être chargé lors de l’exécution de ton programme (genre, les libraries).

          Pour forcer l’OS a tout libérer, tu peux tenter un ‘avail flush’:

          http://www.mattowen.co.uk/amiga/amiga-os-command-reference-help/avail.html

          www.astrofra.com | fra.planet-d.net

          #125857
          seb31
            • Level 0 - Newbie
            • Messages : 8

            Bonjour @astrofa

            oui j ai bien fait avec avail flush, dans un shell…

            et un prog d’aminet : memleak

            je récupère quasiment tout la ;) +/- epsilon

            avant me manquait quasiment 50-80k !

            (tout ca sans doute a cause d’un static devant mes structures newscreen & newwindow! ou des __chip sur mes tables bitplans…)

            par contre storm me dit toujours que l écran/fenêtre n’est pas fermé …

            je viens de recompiler / re exécuter entre des « avail flush », je « perds » 54 octets

            à bientôt pour de nouvelles aventures Amiga C ! des que je maitriserai un peu mieux cet environnement storm…

            y a 30 ans on compilait sur des diskettes avec des r/w errors en pagaille ! puis sur des disques durs tout lents en XT pour ma part…

            là quel confort en RTG + du hardrive qui envoit sur SD de – de 1 cm 2 !!! + réseau & pistorm – bon c’est pas visual studio … en attendant que le project sous vscode integre stdio et stdlib correctement…https://marketplace.visualstudio.com/items?itemName=BartmanAbyss.amiga-debug

            a++

            :bye:

             

             

             

             

             

             

             

            #125858
            astrofra
              • Level 4
              • Messages : 126

              Ah oui, en utilisant un AmigaOS débridé avec une émulation sous JiT, c’est effectivement plus confort :)
              Maintenant, si tu veux coder sous VSCode, tu peux. C’est ce que j’ai fait sur Athanor

              L’émulateur accède en direct au filesystem de ma machine hôte (ici OS X), et je compile avec SAS/C dès que j’ai besoin, l’ému restant allumé en permanence… ça offre l’avantage d’Intellisense et autre (je lui ai fourni tous les .h d’AmigaOS).

              Si tu veux aller plus loin, tu peux même cross compiler depuis ta machine hôte (mais perso je ne suis pas allé jusque là, par flemme B-) )

              Le truc ultime étant de debugger en « remote » mais là c’est pour les adultes, j’sais pas faire…

              www.astrofra.com | fra.planet-d.net

            Partager sur vos réseaux sociaux préférés :
            Facebooktwitterredditpinterestlinkedintumblrmail
            Affichage de 4 réponses de 1 à 4 (sur un total de 4)
            • Vous devez être connecté pour répondre à ce sujet.