专栏名称: 云谦和他的朋友们
我是云谦,阿里 & 蚂蚁 10 年 + 老前端,ZJU,P8,Umi & Dva 等开源库作者,蚂蚁中台框架 Owner,「MDH 前端周刊」作者,初级路亚爱好者,游戏收藏师。
今天看啥  ›  专栏  ›  云谦和他的朋友们

Node 多线程的魔力 - Mako 中的 Less 并行编译

云谦和他的朋友们  · 公众号  ·  · 2024-06-19 11:07

文章预览

less 文件编译是每个前端通用打包工具必备的能力。在 Mako 中,对于 less 文件的编译并没有基于 rust 实现,而是通过 napi 将 less 文件交给 nodejs 的  less loader  ,编译好后,再返回给 rust。 Mako 的 rust 部分会根据机器配置启动线程池,将所有 cpu 都利用上,而在遇到 less 文件时,这些线程都会阻塞式等待 less loader 返回,使得在打包大量使用 less 的项目时,可能存在一定性能瓶颈。 我们在使用 mako 构建一个蚂蚁内部的大型项目时,整个构建耗时约为  21s ,而 less 文件的处理约占了  5s 。我们开始研究怎么给 less 编译提速。 我们考虑过两种方案: 用 rust 重新实现 less 编译。这就需要从 0 开始构建一个 less 编译器,成本巨大; 基于 nodejs 的 worker_threads 并行编译 less。对于早期接触 nodejs 的开发者来说,可能对它的印象是:单线程,不适合做并行计算。但 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览