The following example measures the duration of require() operations to load dependencies:

    1. 'use strict';
    2. const {
    3. performance,
    4. PerformanceObserver
    5. } = require('perf_hooks');
    6. const mod = require('module');
    7. // Monkey patch the require function
    8. mod.Module.prototype.require =
    9. performance.timerify(mod.Module.prototype.require);
    10. require = performance.timerify(require);
    11. // Activate the observer
    12. const obs = new PerformanceObserver((list) => {
    13. const entries = list.getEntries();
    14. entries.forEach((entry) => {
    15. console.log(`require('${entry[0]}')`, entry.duration);
    16. });
    17. obs.disconnect();
    18. });
    19. obs.observe({ entryTypes: ['function'], buffered: true });
    20. require('some-module');