2014-07-02 2 views
1

J'ai créé un programme dans Maxima (le traduit en LISP lorsqu'il s'exécute au-dessus de LISP) qui résout progressivement les équations. Je voulais montrer que s'il n'est pas possible que toutes les équations puissent être chargées en RAM et résolues simultanément, alors peu d'entre elles peuvent être chargées et progressivement nous pouvons en ajouter et utiliser les solutions d'équations précédemment résolues pour obtenir plus de solutions équations ajoutées.Forcer la collecte des ordures dans GCL

Mon programme fonctionne correctement. Mais le problème est que si j'ai besoin de montrer que mon approche va économiser de la RAM, alors je dois lancer GC avant que la nouvelle série d'équations ne soit résolue, pour que je puisse voir le minimum de mémoire, alors que le compilateur ne semble pas aller pour GC automatiquement, d'où il montre la mémoire agrégée utilisée pour une opération complète. J'utilise Version d'implémentation Lisp: GCL 2.6.8.

J'ai besoin de savoir comment je peux forcer la collecte des ordures ou une approche plus efficace que quelqu'un peut suggérer au cas où il n'est pas possible de forcer GC en Lisp (je ne pouvais pas trouver un moyen).

+0

Vous pouvez être intéressé par [cette question] (http://stackoverflow.com/questions/4194620/current-memory-usage-in-lisp). Voici des informations sur la fonction [room] (http://clhs.lisp.se/Body/f_room.htm). Peut-être que ce genre d'informations statistiques (recueillies plusieurs fois) pourrait vous aider à prouver l'efficacité de votre algorithme. – Mark

+0

@Mark: merci pour le lien mais je peux recueillir de "chambre" lui-même. Est-ce que je ne peux pas forcer le GC? – Rorschach

+1

Je voudrais juste lire le manuel GCL ... –

Répondre

2

Grepping à travers la page de manuel de GCL je trouve ce qui suit (est-ce que vous vouliez?)

Fonction: GBC (x) Paquet: LISP GCL spécifique: Invoque le garbage collector (GC) avec la collection niveau spécifié par X. NIL en tant qu'argument oblige GC à collecter des cellules uniquement. T comme l'argument amène GC à tout collecter.