Oui j'avais utilisé ces outils à une époque, j'avais d'ailleurs ouvert certains fils :
- Est-il possible de connaitre la consommation en mémoire d'une page web ? Comment la libérer ?
- Les fuites de mémoire
Mais je ne sais pas si on peut bien voir si il y a une ou plusieurs "copies" de la fonction quand son exécution est lancée plusieurs fois...
Avec un code C\C++ on peut regarder le code assembleur correspondant (après compilation) et alors on peut voir si il y a une ou plusieurs "copies" de la fonction... On peut voir par exemple si c'est toujours la même fonction qui est appelée avec des paramètres et des variables locales qui peuvent être différentes d'un appel à l'autre... Ces données de travail sont stockées dans la pile, des registres...
Après peut-être que c'est différent en JS...
---> Quand j'ai écrit ceci :
J'avais regardé quelques liens avant comme ce bouquin : JavaScript: The Definitive Guide
Il y a plusieurs chapitres intéressant concernant ce sujet : chapitre 4.6, le chapitre 8.8...
Exemple :
Après j'ai voulu en savoir plus sur ce fameux "Call object" mais je n'ai pas trouvé beaucoup de choses et j'ai lu dans le livre qu'en fait ailleurs on parle plutôt de "Activation object"... Et là on trouve pas mal de chose...
Exemple : il y a cet article qui explique plusieurs points importants avec des schémas : JavaScript. The Core
On y trouve notamment une explication de ce qu'est Activation object :
Ah ben du coup j'ai regardé et j'ai vu qu'effectivement je me suis pris plusieurs points négatifs (pouces rouges)... Je ne suis pas sûr de savoir pourquoi, le problème avec ce système c'est qu'on peut approuver ou désapprouver un message sans donner d'arguments du coup on ne sait pas sur quelle base on est jugé...Activation object
When a function is activated (called) by the caller, a special object, called an activation object is created. It’s filled with formal parameters and the special arguments object (which is a map of formal parameters but with index-properties). The activation object then is used as a variable object of the function context.
I.e. a function’s variable object is the same simple variable object, but besides variables and function declarations, it also stores formal parameters and arguments object and called the activation object.
...
Perso je n'ai donné aucun pouce rouge...
Bref, ce n'est pas très important...
Partager