Il s'agit d'une boucle infinie. Or, comme le javascript est monotâche, le navigateur va se retrouver coincé dans cette boucle infinie, ce qui risque de remplir le cache très rapidement et de provoquer un plantage (ou de ne rien restituer).
Tout d'abord, d'une manière générale, il est préférable de créer le fichier setTimeout
une seule fois, avant d'appeler while
:
var count = 0;
var trs = true;
setTimeout(() => {trs = false;}, 1000);
while(trs){
count = count + 1;
}
console.log(count);
Toutefois, cela entraînera également un plantage.
Vous pouvez essayer de mesurer les opérations différemment, en mesurant le temps nécessaire pour une seule opération. count = count + 1
opération à exécuter, puis déterminer combien d'entre elles peuvent être exécutées en une seconde (bien que ce ne soit pas la même chose que d'exécuter X opérations consécutives, pour lesquelles d'autres paramètres pourraient influencer le résultat, mais je suppose que vous vous souciez d'une seule opération ou d'une seule fonction que vous voulez mesurer).
var count = 0;
var t0 = performance.now()
count = count + 1;
var t1 = performance.now()
console.log(1000/(t1 - t0));
Si vous voulez qu'il se trouve à l'intérieur d'une boucle, vous pouvez également inclure la vérification de la valeur (avec if), que la fonction while
avant d'exécuter son bloc.
var count = 0;
var trs=true;
var t0 = performance.now()
if(trs==true){
count = count + 1;
}
var t1 = performance.now()
console.log(1000/(t1 - t0));