La mémoïsation

0

Dans cette vidéo, découvrez ce qu’est la mémoïsation en quelques minutes. Ce concept peut permettre de gros gains de performances dans des cas précis.

Quand nous utilisons des fonctions pures, dont le résultat ne dépend que des arguments, et qui sont très utilisées et/ou très gourmandes en ressources, il est possible d’appliquer la mémoïsation.
Cela consiste à mémoriser le résultat des différents appels, pour pouvoir ensuite les restituer en cas d’appel avec les mêmes arguments. On stocke donc des couples clé-valeur, ou la clé est obtenue à partir d’un jeu unique d’arguments, et où la valeur est le résultat correspondant de la fonction.

La mémoïsation consiste donc pour vulgariser à échanger du temps de calcul contre de la mémoire. Cet échange peut-être très profitable ou pas selon les cas. Les fonctions récursives utilisant de nombreuses fois les mêmes jeux d’arguments (comme la suite de Fibonacci par exemple) profitent beaucoup de cette astuce.

Dans les liens ci-dessous, vous pourrez trouver les implémentations de deux librairies JS populaires : Lodash et Ramda. Les approches sont similaires, mais Ramda est une librairie fonctionnelle et qui utilise donc la curryfication. On y reviendra …

Pour aller plus loin

Quelques pistes de lecture pour vous :

Partagez cet article.

A propos de l'auteur

Ajouter un commentaire