如何测量导入执行时间
How to measure import execution time
如何在不进入导入的情况下测量导入的执行时间?
假设我有下面的代码。
main.js
const now = Date.now();
import './module';
console.log(`${Date.now() - now}ms`);
// shows 0ms
module.js
const now = Date.now();
let a = 0;
for(let i = 0; i < 1000 * 1000 * 1000, i++) a++;
console.log(`${Date.now() - now}ms`;
// shows 1000ms
您的 main.js 不起作用,因为在加载和初始化(执行)所有导入的依赖项之前,不会执行模块的代码。这两个 Date.now()
调用将始终 运行 紧接着对方,导致输出 0 毫秒。
您需要在测量的 module.js 之前加载另一个模块以获取开始时间:
// main.js
import { now as start } from 'beginMeasure';
import './module';
const end = Date.now();
console.log(`${end - start}ms`);
// beginMeasure.js
export const now = Date.now();
我发现测量导入模块执行时间的最佳方法是改用 require。确定慢模块并恢复导入是很好的。
const now = Date.now();
const module1 = require('./module1');
console.log(`module1: ${Date.now() - now}ms`);
const module2 = require('./module2');
console.log(`module2: ${Date.now() - now}ms`);
如何在不进入导入的情况下测量导入的执行时间?
假设我有下面的代码。
main.js
const now = Date.now();
import './module';
console.log(`${Date.now() - now}ms`);
// shows 0ms
module.js
const now = Date.now();
let a = 0;
for(let i = 0; i < 1000 * 1000 * 1000, i++) a++;
console.log(`${Date.now() - now}ms`;
// shows 1000ms
您的 main.js 不起作用,因为在加载和初始化(执行)所有导入的依赖项之前,不会执行模块的代码。这两个 Date.now()
调用将始终 运行 紧接着对方,导致输出 0 毫秒。
您需要在测量的 module.js 之前加载另一个模块以获取开始时间:
// main.js
import { now as start } from 'beginMeasure';
import './module';
const end = Date.now();
console.log(`${end - start}ms`);
// beginMeasure.js
export const now = Date.now();
我发现测量导入模块执行时间的最佳方法是改用 require。确定慢模块并恢复导入是很好的。
const now = Date.now();
const module1 = require('./module1');
console.log(`module1: ${Date.now() - now}ms`);
const module2 = require('./module2');
console.log(`module2: ${Date.now() - now}ms`);