直播短视频系统,利用多核/多进程能力优化加载
直播短视频系统,利用多核/多进程能力优化加载
thread-loader
1、多进程程处理loader
2、使用时,需将此 loader 放置在其他 loader 之前。放置在此 loader 之后的 loader 会在一个独立的 worker 池中运行。
3、本身启动进程就需要耗费时间,**请仅在耗时的操作中使用此 loader!**要不然收益达不到你的预期
happypack
1、启动多进程来优化构建速度,但是作者不维护了,注意安装版本,
2、替换方案建议使用thread-loader
{
// 当js代码用babel处理兼容性且本身代码就比较多的情况下可以使用thread-loader开启多线程打包
// thread-loader本身启动进程就需要耗费时间, 所以当js代码不多时就不要开启, 否则还可能会延长打包时间
test: '/.js$/',
exclude: /node_modules/,
use: [
{
loader: 'thread-loader',
options: {
// 默认是cpu核 - 1, 可以通过这里更改开启几个进程
works: 2
}
}
]
}
// @file: webpack.config.js
const HappyPack = require('happypack');
var happyThreadPool = HappyPack.ThreadPool({ size: 5 });
exports.module = {
rules: [
{
test: /.js$/,
// 1) replace your original list of loaders with "happypack/loader":
// loaders: [ 'babel-loader?presets[]=es2015' ],
use: ['happypack/loader'?id=babel], // 这里的id 就是定义在plugin里面HappyPack实例构造参数传入的id
include: [ /* ... */ ],
exclude: [ /* ... */ ]
},
{
test: /.less$/,
use: 'happypack/loader?id=styles'
},
]
};
exports.plugins = [
// 2) create the plugin:
new HappyPack({
// 3) re-add the loaders you replaced above in #1:
loaders: [ 'babel-loader?presets[]=es2015' ],
threadPool: happyThreadPool,
id: 'babel'
}),
new HappyPack({
id: 'styles',
threadPool: happyThreadPool,
loaders: [ 'style-loader', 'css-loader', 'less-loader' ]
})
];
以上就是直播短视频系统,利用多核/多进程能力优化加载, 更多内容欢迎关注之后的文章