Addy Osmani (qu’on ne présente plus) a partagé cet été une présentation concernant la gestion de la mémoire en Javascript qui vaut le détour et que vous pouvez trouver ici : https://speakerdeck.com/addyosmani/javascript-memory-management-masterclass

Il présente tout d’abord les différents outils de chaque navigateur permettant de surveiller la consommation mémoire de nos applications.
Il explique ensuite les cas les plus courants qui peuvent provoquer les fuites de mémoires ou le ralentissement de l’application.

On apprend par exemple que l’usage du « delete » sur la propriété d’une classe peut la rendre plus lente d’utilisation.
Autre point, les fonctions anonymes peuvent engendrer une grosse consommation de la mémoire étant donné qu’elles maintiennent des références sur toutes les variable du scope dans lequel elles ont été créées et, qu’ainsi, elles les empêchent d’être collectées par le garbage collector (ou « ramasse miettes » pour les puristes).
Pour le reste des exemples c’est ici: https://speakerdeck.com/addyosmani/javascript-memory-management-masterclass

Dans tous les cas l’auteur nuance et rappelle que l’optimisation n’est pas une fin en soi, et qu’au delà des bonnes pratiques élémentaires, mieux vaut privilégier une bonne conception et travailler à l’optimisation une fois le code réalisé et profilé. Il cite notamment Donald Knuth qui nous prévenait déjà en 1974 (pour ceux qui étaient nés ;) :

©Donald Knuth : We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil