UNPKG

1.23 kBJavaScriptView Raw
1const startTime = Date.now();
2let last = 0;
3global.log = function time(message) {
4 let time = Date.now() - startTime;
5 console.log(time, time - last ,message);
6 last = time;
7};
8global.perf = function perf(fn) {
9 const start = Date.now();
10 try {
11 fn();
12 } finally {
13 console.log(fn.name, 'took', Date.now() - start);
14 }
15}
16
17require('bluebird').prototype.log = function log(message) {
18 return this.tap(() => global.log(message));
19}
20
21global.measureRequireTimes = () => {
22 'use strict';
23 const {
24 performance,
25 PerformanceObserver
26 } = require('perf_hooks');
27 const mod = require('module');
28
29 // Monkey patch the require function
30 mod.Module.prototype.require = performance.timerify(mod.Module.prototype.require);
31 require = performance.timerify(require);
32
33 // Activate the observer
34 const obs = new PerformanceObserver((list) => {
35 const entries = list.getEntries();
36 entries.sort((a, b) => b.duration - a.duration).filter(x => x.duration > 1).forEach((entry) => {
37 console.log(`require('${entry[0]}')`, entry.duration);
38 });
39 obs.disconnect();
40 });
41 obs.observe({ entryTypes: ['function'], buffered: true });
42}