Il existe de nombreuses façons d'obtenir des horodatages dans NodeJS, tels que:
1. Nouvelle date (). GetTime ()
2. Date.now ()
3. Process.Uptime ()
4. Process.hrtime ()
Si vous souhaitez obtenir un horodatage, vous pouvez utiliser ces méthodes. Alors, quelle est la différence entre ces méthodes?
new Date (). gettime () et date.now ()
Ces méthodes se déroulent par le nombre de millisecondes de l'environnement de fonctionnement du système dans le nœud. L'effet de la méthode de rédaction de la nouvelle date () est le même que l'effet de la nouvelle date (). GetTime () .
Dans les scénarios où les horodatages sont fréquemment utilisés, vous devez faire attention aux performances de la méthode. Parmi ces méthodes, Date.now () a les meilleures performances. Vous pouvez le tester avec un petit code:
var t1 = new Date (). getTime (); var t2 = t1; var i = 0, count = 10000000, interval = 0; for (i = 0; i <count; i ++) {t2 = new Date (). GetTime (); interval = (t2 - t1);} interval = (t2 - t1); console.log ('【new Date (). gettime ()】 interval:', interval); t1 = new Date (). getTime (); for (i = 0; i <count; i ++) {t2 = + nouvelle date; interval = (t2 - t1);} interval = (t2 - t1); console.log ('【+ new Date】 Interval:', interval); t1 = new Date (). getTime (); for (i = 0; i <count; i ++) {t2 = date.now (); interval = (t2 - t1);} interval = (t2 - t1); console.log ('【date.now ()】 intervalle:', interval);Résultat de sortie:
【Nouvelle date (). GetTime ()】 Intervalle: 1583
【+ Nouvelle date】 Intervalle: 2189
【Date.now ()】 Intervalle: 891
Si vous obtenez simplement l'horodatage, alors l'utilisation de Date.now () est la meilleure façon de le faire, mais si vous souhaitez calculer la différence de temps, ces méthodes auront des problèmes: il y aura parfois de légers rappels dans le temps du système de l'environnement en cours d'exécution, de sorte que la différence de temps obtenue est inacte et parfois certains bogues seront déclenchés.
process.hrtime ()
Cette méthode consiste à obtenir un objet horodomagiste exact basé sur tout point de temps passé pris et le temps du présent: [secondes, nanosecondes]
> process.hrtime () [3197146, 563552237]
Cette méthode n'a rien à voir avec le temps du système, il ne sera donc pas affecté par la dérive de l'horloge du système, et il n'y aura pas de bogues lorsqu'ils seront utilisés pour calculer le décalage horaire.
Mais, tout est toujours là - -
Et s'il est utilisé dans un endroit où il s'appelle fréquemment?
var t1 = new Date (). getTime (); var t2 = t1; var i = 0, count = 10000000, interval = 0; var hrtime1 = process.hrtime (); var hrtime2 = hrtime1; t1 = new Date (). gettime (); for (i = 0; i <count; i ++) {hrtime2 = process.hrtime (hrtime1); Date (). GetTime (); interval = parseInt (hrtime2 [0] * 1e3 + hrtime2 [1] * 1e-6); console.log ('【hrtime】 intervalle:', interval, t2 - t1); 【hrTime】interval: 6412 6413 Si vous vous en souvenez correctement, le même nombre de créations, la date.now () ci-dessus est d'environ 900 ms!
process.hrtime () est trop lent! ! !
Il s'avère que lorsque NodeJS gère le temps de haute précision, le calcul est relativement compliqué, occupe beaucoup de ressources système et a une vitesse lente, donc cette méthode ne convient pas aux applications à haute fréquence. Veuillez consulter Process.Uptime () ci-dessous
process.uptime ()
Cette fonction utilise le temps d'exécution de démarrage de NodeJS pour obtenir un deuxième horodatage, qui est exact pour les millisecondes:
process.uptime
Entrée: 6.419
Cette fonction est basée sur le temps de démarrage du nœud et ne sera pas affectée par la dérive de l'horloge du système et convient pour calculer le décalage horaire.
Alors, comment est les performances de plusieurs appels?
var t1 = new Date (). getTime (); var t2 = t1; var i = 0, count = 10000000, interval = 0; t1 = process.uptime () * 1000; pour (i = 0; i <count; i ++) {t2 = process.uptime () * 1000; // interval = (t2 - t1);} interval = (t2 - t1); console.log ('【process.uptime ()】 intervalle:', interval);Sortie: [process.uptime ()] Intervalle: 954
Par rapport à process.hrtime (), il crée beaucoup de performances ~
Ne comptez pas si précisément, c'est rapide!
Ensuite, vous devez calculer le décalage horaire à haute fréquence!
Ce qui précède est tout ce que NodeJS obtient la différence entre l'horodatage et le temps. J'espère que cela sera utile à tout le monde lors de l'utilisation de Nodejs.