"Mais est ce qu'on peut dire que l'utilisation de la mémoire n'influe sur la vitesse que si elle vient à manquer, et que sinon ça ne pose pas trop de problème ?"
C'est bien plus complexe que sa, dans l'absolue, quand tu crée un tableau de 200Mo, c'est pour t'en servir, tu va surement bouclé dessus, faire des recherche dessus,
et la le proc y tourne.
Une appli, au dela du programme a elle aussi besoin de mémoire, si tu a une appli qui consome 500Mo et qui tu a 512Mo de ram(on fait abstraction de l'os et autre appli),
tu comprend qu'il ne te reste que 12Mo de mémoire utile.
"Ça c'est justement un truc que je suis pas sur d'avoir bien saisi dans le fonctionnement général du js : le fait qu'une fonction "crée une copie" "
Se n'est pas lié au js mais c'est un problème générale.
1 2 3 4 5
| var tableau_de_200Mo = [...];
var pomper=function(tableau_de_200Mo){
// ici en gros l'argument tableau_de_200Mo est une copie (en vrai c'est beaucoup plus complexe que sa)
}
pomper(tableau_de_200Mo); |
1 2 3 4 5
| var tableau_de_200Mo = [...];
var pomper=function(){
// ici tu travail sur le tableau puisqu'il est global, il ni a pas de coipe
}
pomper(); |
En passant un argument, il crée une copie de l'argument
En php, peut etre a déja tu vu sa
function pomper(&variable)
ici on passe notre variable en réference, c'est a dire qu'on lui fournit l'adresse du tableau, il ne crée donc pas de copie puisque il sait ou est le tableau originale
C'est un sujet complexe, sa dépend d'énormément de choses, ne serait ce du navigateur (moteur)
Partager