Comment vérifier le nombre de secondes (ou ms) passées à l'intérieur de la boucle particulière en JavaScript. J'ai un algo de tri mis en œuvre dans JavaScript, maintenant j'utilise Bubble Tri, je veux utiliser un tri rapide. Je sais en termes d'efficacité du temps, le tri rapide est bon. Mais je veux calculer le nombre réel de SEC ou MILLI SEC a passé à l'intérieur de la boucle la plus interne. Comment puis-je faire en JavaScript? p>
5 Réponses :
La méthode la plus simple consiste à comparer par date.
var old_time = new Date(); ... var new_time = new Date(); var seconds_passed = new_time - old_time;
OK.Merci je ne sois pas les numéros, je trie des objets d'objets où je trie en fonction de l'une des propriétés de l'objet. tellement intégré que je ne peux pas utiliser.
Il convient de garder à l'esprit que l'objet de date n'est pas terriblement précis. John Resig a écrit un article à ce sujet: ejohn.org/blog/accuracy-of-javaScript -Time .
@sat: la méthode trier code> vous permet de spécifier un comparer code>, ce qui vous permet de faire exactement ce que vous êtes après (sans avoir à sortir et à créer votre propre méthode de tri ). Voir: développeur.mozilla.org/fr/core_javascript_1.5_reference/ Objec TS / ... Pour plus d'informations.
Cette réponse est obsolète. Vérifiez ma réponse complète ci-dessous.
Le temps n'est pas vraiment précis sur la plupart des navigateurs, vous pouvez vous attendre à une marge d'erreur d'environ 15 ms:
var start = (new Date).getTime(); /* Your code. */ var diff = (new Date).getTime() - start;
C'était un très bon article !! Merci . Jamais pensé à ça.
D'autres ont déjà répondu à la façon de faire le calcul du temps, donc je répondrai à votre commentaire: "Je trie des objets d'objets dans lesquels je trie en fonction de l'une des propriétés de l'objet. So Tri intégré que je ne peux pas Utilisez. "
Ce n'est pas vrai du tout, vous pouvez toujours utiliser la tri intégré: p>
Donc, dans la pièce de code ci-dessus, sa comparaison de la propriété de texte de 2 objets? Quel algo est utilisé en interne? signifie-t-il comparer chacun n chaque objet ou une meilleure algue?
@sat: pour Firefox, fusionne le tri. Ceci est utilisé à la place du tri rapide pour que l'ordre de tri est stable. Voir BugZilla.Mozilla.org/show_bug.cgi?id=224128 .
@David: arr.sort (fonction (x, y) {return x.text> y.text? 1: x.text
@Kenny merci pour cette superbe info.u apprendre à apprendre beaucoup de choses avec des questions simples.
Si vous utilisez Firebug, vous pouvez faire
console.time('someNameHere');
// Do things here
console.timeEnd('someNameHere');
Utilisez ceci maintenant, c'est standard https://developer.mozilla.org/en-us/docs/web/web/api/performance.now p>
Ajout à toutes les réponses, une fonctionnalité plus utile que j'ai trouvée dans Firebug est "Timing and PROFING", getfirebug.com/logging A>, aide à déterminer la performance JavaScript.