État courant de la mémoire
Cette fonction est pour ceux qui veulent vraiment aller plus loin avec AutoLISP, dans la vie courante on peut l'ignorer en toute modestie.
(mem) est une fonction sans argument
Cette fonction affiche l'état courant de la mémoire utilisée par AutoLISP et renvoie nil.
Elle affiche les informations suivantes :
Nodes
Indique le nombre total de nœuds alloués jusqu'à présent, cette valeur doit être égale à la taille d'un segment de nœud multiplié par le nombre de segments.
Free nodes
Indique le nombre de nœuds présents dans la liste des nœuds libres suite à une opération de purge de la mémoire.
Segments
Indique le nombre de segments de nœuds alloués
Allocate
Indique la taille de segment courante
Collections
C'est un compteur de purges mémoire (automatiques ou forcées)
Exemple de résultat du lancement de cette fonction :
"; GC calls: "26"; GC run time: "63" ms"
"\nDynamic memory segments statistic:\n""PgSz Used Free FMCL Segs Type\n" 512 415 93 93 4 lisp stacks
256 4537 691 153 20 bytecode area
4096 1207 8 8 81 CONS memory
32 2193 1771 1726 2 ::new
4096 290 10 9 20 DM Str
4096 737 13 13 50 DMxx memory
128 4 507 506 1 bstack body
"Segment size: "65536", total used: "178", free: "0
nil
Comme je vous le disais en propos liminaires on peut l'ignorer sans vergogne car personnellement je ne sais rien en déduire, mais puisque j'ai décidé d'écrire sur l'AutoLISP je me dois d'être le plus exhaustif possible.
GC
Garbage Collector, qu'on peut traduire en "ramasse-miettes" ou éboueur, le nom est explicite, comme souvent, et nous renseigne sur l'utilité de la fonction.
C'est la purge de l'espace mémoire, cette fonction semble obsolète et doit dater du temps où les ordinateurs n'avaient pas les capacités actuelles
Syntaxe : (gc)
ALLOC
Affecte un certain nombre de noeuds comme taille de segment.
Syntaxe : (alloc entier)
Cette fonction renvoie la taille de segment précédente.
9 décembre 2017