通过修改语法与启动快照的方式优化node项目的启动速度

思路:
1、通过语法解析将js文本顶部的require与import 优化为一下形式


// 优化前

const  path = require('path')

console.log(path.join('a', 'b'))

// 优化后

let  path;

function  get_path () {

if (path) {

return  path

} else {

path = require('path')

return  path

}

}

console.log(get_path().join('a', 'b'))

如何使用语法树优化代码可以参考:如何通过babel去操作ast, 并生成对应的代码
2、 将js文件生成为快照,并通过注入快照的方式启动项目


$ echo  "globalThis.foo = 'I am from the snapshot'" > snapshot.js

# Run snapshot.js to intialize the application and snapshot the

# state of it into snapshot.blob.

$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js

$ echo  "console.log(globalThis.foo)" > index.js

# Load the generated snapshot and start the application from index.js.

$ node --snapshot-blob snapshot.blob index.js

I am from the snapshot

参考文章:

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!