Feelin : Garbage collection

3 sujets de 1 à 3 (sur un total de 3)

  • Gofromiel

      #4859

      J’ai implémenté une gestion de type ‘garbage collector’ pour les atomes (relation chaine <> valeur numérique) assez simple : lorsque qu’un seuil d’atomes non utilisés est atteint, la liste des atomes est traversée en supprimant tous les atomes ‘inutiles’. Cette ‘purge’ est faite par la fonction F_AtomRelease().

      Je voudrais implémenter un modèle similaire pour les objets. Ainsi, on oublierai la fonction F_Dispose() et on utiliserait à la place un fonction F_Unref(). Je pourrait même étendre ceci à un type ‘resource’ et virtualiser tout ça. M’enfin ça se serait pour plus tard.

      Bref, la grande question est la suivante : utiliser un seuil et purger lors de la fonction F_Unref(), ou utiliser un Thread qui de temps en temps parcours une liste de ressources inutilisées ?

      Fab1

        #84106

        La première solution est la plus simple mais est évidemment coûteuse si la fonction est appelée fréquemment (indirectement ou non) par les applis.

        La seconde marche bien mais est peut être un peu lourde.

        J’en ai une 3ème, mais qui est plus intéressante quand on manipule de gros objets : un lowmem handler. Par exemple dans ambient, tous les thumbnails mis en cache et cie sont libérés si le système déclenche ce handler (ou si avail flush est appelé).

        Gofromiel

          #84107

          @Fab1 : A ben justement, je me suis toujours demandé s’il était possible d’être informé lorsque le système cherche à libérer des ressources.

        3 sujets de 1 à 3 (sur un total de 3)

        • Vous devez être connecté pour répondre à ce sujet.

        Forums AmigaOS, MorphOS et AROS Développement Feelin : Garbage collection

        Amiga Impact