đą Node.js
đ Les diffĂ©rents modules core
perf_hooks
Ce module fournit une implĂ©mentation dâun sous-ensemble des API de performance Web du W3C ainsi que des API supplĂ©mentaires pour les mesures de performance spĂ©cifiques Ă Node.js.
Câest un module vraiment cool qui va vous permettre de mesurer bien plus prĂ©cisĂ©ment les performances de mĂ©thodes JavaScript. Il est dâailleurs fortement recommandĂ© dâutiliser performance.now() plutĂŽt que Date.now().
import { performance, PerformanceObserver } from "node:perf_hooks";
function someFunction() {
console.log("hello world");
}
const wrapped = performance.timerify(someFunction);
const obs = new PerformanceObserver((list) => {
console.log(list.getEntries()[0].duration);
obs.disconnect();
});
obs.observe({ entryTypes: ['function'] });
// A performance timeline entry will be created
wrapped();
Voici quelques cas dâusages;
- Dans SlimIO nous utilisons le module en combinaison avec des hooks Asynchrone pour nous permettre de gĂ©nĂ©rer des mĂ©triques sur les temps dâexĂ©cution de nos callbacks (ce qui nous permet de faire du self monitoring).
- RĂ©cupĂ©rer le temps dâexĂ©cution des routes sur Fastify avec le module @fastify/routes-stats (Excellente dĂ©monstration de lâAPI).
Le module perf_hooks vous permet aussi de faire du monitoring sur lâevent-loop (voir la section monitoring en bas pour plus de ressources sur le sujet).
âŹ ïž đ Les diffĂ©rents modules core: Readline | âĄïž đ Les diffĂ©rents modules core: async_hooks