node.js 代码执行时间的实现
基础实现
// 记录开始时间
var startTime = performance.now();
// 要执行的代码
for (let i = 0; i < 1000; i++) {
console.log("第 " + (i+1) + " 次循环");
}
// 记录结束时间
var endTime = performance.now();
// 计算执行时间
var executionTime = endTime - startTime;
console.log('代码执行时间:', executionTime.toFixed(2), '毫秒');
异步完成后计算结束时间
// 记录开始时间
var startTime = performance.now();
// 串行执行示例
function task1() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log('Task 1 completed');
resolve();
}, 600);
});
}
function task2() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log('Task 2 completed');
resolve();
}, 800);
});
}
task1()
.then(task2)
.then(function () {
console.log('All tasks completed');
// 记录结束时间
var endTime = performance.now();
// 计算执行时间
var executionTime = endTime - startTime;
console.log('代码执行时间:', executionTime.toFixed(2), '毫秒');
});
利用exit
事件,封装成函数
这样只要在代码开头写一个匿名函数并直接执行就可以了,因为是程序退出时才计算结束时间,所以即使是异步也能正确计算代码执行时间
(function () {
// 记录开始时间
var startTime = performance.now();
process.on('exit', function (code) {
console.log('about to exit with code: ' + code);
// 记录结束时间
var endTime = performance.now();
// 计算执行时间
var executionTime = endTime - startTime;
console.log('代码执行时间:', executionTime.toFixed(2), '毫秒');
});
})();
// 串行执行示例
function task1() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log('Task 1 completed');
resolve();
}, 600);
});
}
function task2() {
return new Promise(function (resolve, reject) {
setTimeout(function () {
console.log('Task 2 completed');
resolve();
}, 800);
});
}
task1()
.then(task2)
.then(function () {
console.log('All tasks completed');
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具