使用 ES modules 比加载打包构建文件慢
ESM:加载 -> 静态分析依赖 -> 加载 -> 静态分析依赖 … 逐个解析执行
bundle:加载 -> 解析执行
但还是慢,2019-04-16 测试(不开 devtools ,使用隐私模式,modulepreload/module/build):
- Firefox 66 - 1197/986/64
- Safari 12.1 - 909/948/64
- Chrome 73 - 917/637/53
测试:
- https://xianqiao.wang/test/esm/public/es6-modules-parallel.html
- https://xianqiao.wang/test/esm/public/webpack-modules.html
确定的原因:
- 压缩率(单文件压缩率高 3-4 倍)
可能的原因(Firefox Profiler):
- 服务端响应不过来(HTTP request and waiting for response)
- Native 忙不过来
- waiting for socket thread,大量
- waiting for transmit response,大量
- 事件循环:处理请求在一个独立的事件循环中进行(__psynch_cvwait)(Chrome DevTools Task)
- 难道不是多个响应在一个事件循环中处理?