2010-09-13 5 views
4

J'optimisais mon moteur de jeu html5 pour des problèmes de performances et je veux savoir combien de temps un processus de rendu a besoin. J'ai donc un tas de fonctions de rendu. Chacune d'entre elles rend des parties séparées du jeu. etc.Pourquoi mon code temporel renvoie-t-il toujours 0?

function gameRender() { 
    var d1 = new Date(); 
    var firstTime = d1.getTime(); 

    // render stuff 

    var second = d1.getTime(); 
    console.log("Renders took " + (second-firstTime)); 
} 
+0

Si vous déboguez avec Firefox, il a intégré les temporisateurs http://getfirebug.com/wiki/index.php/Console_API#console.time.28name.29, il n'est donc pas nécessaire de coder il. :) – epascarello

Répondre

5

Hmm je suis le problème: après une petite recherche sur Google, je réalisais que je dois utiliser un deuxième objet date pour la seconde variable, voici donc une version fixe:

function gameRender() { 
    var d1 = new Date(); 
    var firstTime = d1.getTime(); 

    // render stuff 

    var d2 = new Date(); 
    var second = d2.getTime(); 
    console.log("Renders took " + (second-firstTime)); 
} 
+0

Vous pouvez également utiliser "new Date(). GetTime()" si vous n'utilisez pas les objets Date pour autre chose. – Turnor

+0

@Turnor: Vous n'avez pas non plus besoin de 'getTime'. Lorsque vous effectuez une opération (comme une addition ou une soustraction) sur ces objets, la méthode 'valueOf' sera appelée. La méthode 'valueOf' pour les objets' Date' renvoie la même valeur que 'getTime'. –

Questions connexes