Connaître la taille en RAM libre

Les cartes Micropython disposent en général d'une RAM de taille limitée et c'est probablement une des limites que l'on va rencontrer en premier dès lors que l'on utiliser une carte Micropython. Ouverture d'un fichier un peu volumineux... et on provoque une erreur de RAM. Il est donc important de pouvoir connaître la RAM dont on dispose et même savoir libérer la RAM qui est utilisée inutilement.

Obtenir les informations sur la RAM de la carte

Pour connaître information que la RAM, on dispose d'une fonction dédiée du module micropython :

>>> import micropython as upy
>>> print (upy.mem_info())
stack: 720 out of 15360
GC: total: 111168, used: 53280, free: 57888
 No. of 1-blocks: 1718, 2-blocks: 161, max blk sz: 33, max free sz: 3595
None

Libérer de la RAM

Noter que si on veut libérer la RAM des objets qui ne sont plus utiles ou utilisés, on pourra faire :

>>> import gc
>>> gc.collect()
>>> print (upy.mem_info())
stack: 736 out of 15360
GC: total: 111168, used: 4400, free: 106768
 No. of 1-blocks: 96, 2-blocks: 9, max blk sz: 18, max free sz: 3362
None

On voit ici par exemple que 50Ko de RAM ont été libérés par la manip' et a doublé la RAM disponible. Il est donc important de le faire lors des manip' susceptibles de monopoliser beaucoup de RAM.

Liens utiles :