Console.time () é seguro em node.js?

Eu tenho um pequeno trecho de código node.js na minha frente que se parece com isso:

console.time("queryTime"); doAsyncIOBoundThing(function(err, results) { console.timeEnd("queryTime"); // Process the results... }); 

E, é claro, quando eu executo isso no meu sistema de desenvolvimento (de outra forma ociosa), recebo uma mensagem de console como esta:

 queryTime: 564ms 

No entanto, se eu colocar isso em produção, provavelmente não haverá várias chamadas assíncronas em andamento simultaneamente, e cada uma delas replaceá o timer anterior? Ou o nó tem algum tipo de contexto de execução mágico que dá a cada “segmento de execução” um espaço de nome de tempo de console separado?

Apenas use etiquetas exclusivas e será seguro. É por isso que você usa um label para identificar com exclusividade o horário de início.

Contanto que você não use acidentalmente um label duas vezes, tudo funcionará exatamente como pretendido. Observe também que o node geralmente tem apenas um thread de execução.

Este código simples não funcionaria?

 var labelWithTime = "label " + Date.now(); console.time(labelWithTime); // Do something console.timeEnd(labelWithTime); 

Considere novos resources do NodeJS, pois ele também evoluiu. Por favor, olhe para:

process.hrtime() e outros ganchos de API de desempenho do NodeJS:

https://nodejs.org/api/perf_hooks.html#perf_hooks_performance_timing_api