Existem muitas maneiras de obter registros de data e hora em NodeJs, como:
1. Nova data (). Gettime ()
2. DAT.NOW ()
3. Process.uptime ()
4. Process.hrtime ()
Se você deseja obter um registro de data e hora, pode usar esses métodos. Então, qual é a diferença entre esses métodos?
new date (). gettime () e date.now ()
Esses métodos são através do número de milissegundos do ambiente de execução do sistema no nó. O efeito do método de escrita +new Date () é o mesmo que o efeito de new Date (). GetTime () .
Em cenários em que os registros de data e hora são usados com frequência, você precisa prestar atenção ao desempenho do método. Entre esses métodos, Date.now () tem o melhor desempenho. Você pode testá -lo com um pequeno código:
var T1 = new Date (). getTime (); var t2 = t1; var i = 0, contagem = 10000000, intervalo = 0; para (i = 0; i <count; i ++) {t2 = new date (). gettime (); intervalo = (t2 - t1);} intervalo = (t2 - t1); console.log ('【new date (). gettime ()】 intervalo:', intervalo); t1 = new date (). gettime (); para (i = 0; i <count; i ++) {t2 =+nova; interval = (t2 - t1);} interval = (t2 - t1); console.log ('【+nova data】 intervalo:', intervalo); t1 = new Date (). getTime (); para (i = 0; i <contagem; i ++) {t2 = date.now (); intervalo = (t2 - t1);} intervalo = (t2 - t1); console.log ('【date.now ()】 intervalo:', intervalo);Resultado da saída:
【New Date (). GetTime ()】 Intervalo: 1583
【+Nova data】 Intervalo: 2189
【Data.now ()】 Intervalo: 891
Se você apenas obtiver o registro de data e hora, o uso do date.now () é a melhor maneira de fazê -lo, mas se você deseja calcular a diferença de horário, esses métodos terão alguns problemas: às vezes haverá pequenos retornos de chamada no tempo do sistema do ambiente de corrida; portanto, a diferença de horário obtida é imprecisa e, às vezes, alguns bugs serão acionados.
process.hrtime ()
Este método é para obter um objeto exato de registro de data e hora baseado em qualquer ponto passado passado e no tempo do presente: [segundos, nanossegundos]
> process.hrtime () [3197146, 563552237]
Esse método não tem nada a ver com o tempo do sistema, por isso não será afetado pelo desvio do relógio do sistema e não haverá bugs quando usado para calcular a diferença de tempo.
Mas, tudo está sempre lá - -
E se for usado em um lugar onde é chamado com frequência?
var t1 = new date (). gettime (); var t2 = t1; var i = 0, count = 10000000, intervalo = 0; var hrtime1 = process.hrtime (); var hrtime2 = hrtime1; t1 = new date (). Date (). Gettime (); interval = parseint (hrtime2 [0] * 1e3 + hrtime2 [1] * 1e -6); console.log ('【hrtime】 intervalo:', intervalo, t2 - t1); 【hrTime】interval: 6412 6413 Se você se lembra corretamente, o mesmo número de criações, a data.now () acima é de cerca de 900ms!
process.hrtime () é muito lento! ! !
Acontece que, quando o NodeJS lida com o tempo de alta precisão, o cálculo é relativamente complicado, ocupa muitos recursos do sistema e tem uma velocidade lenta, portanto esse método não é adequado para aplicações de alta frequência. Por favor, consulte Process.uptime () abaixo
process.uptime ()
Esta função usa o tempo de execução do NodeJS Startup para obter um segundo registro de data e hora, que é preciso para milissegundos:
process.uptime
Entrada: 6.419
Esta função é baseada no tempo de inicialização do nó e não será afetada pelo desvio do relógio do sistema e é adequado para calcular a diferença de tempo.
Então, como é o desempenho de várias chamadas?
var T1 = new Date (). getTime (); var T2 = t1; var i = 0, contagem = 10000000, intervalo = 0; t1 = process.uptime ()*1000; for (i = 0; i <count; i ++) {t2 = process.uptime ()*1000; // intervalo = (t2 - t1);} interval = (t2 - t1); console.log ('【process.uptime ()】 intervalo:', intervalo);Saída: [process.uptime ()] intervalo: 954
Comparado com process.hrtime (), ele cria muito desempenho ~
Não conte com tanta precisão, é rápido!
Então você precisa calcular a diferença de horário em alta frequência!
O exposto acima é sobre o NodeJS obtendo a diferença entre o registro de data e hora e o tempo. Espero que seja útil para todos ao usar o NodeJS.