因为自己平时开发要用 scala,在自己的笔记本上编译太慢 开发体验很差,想着搞一个类似 distcc 的东西,原理大概是这样的:
- 把本地的源码文件上传到服务器(单机或者集群)
- 服务器编译源码
- 本地从服务器下载编译好的 class 文件
自己搞了个 scala 的小项目看了下, 50k 的源码(大约 2K 行)编译出来目标文件大约 150k, 编译时间大约需要 25 秒。 这种场景下网络带宽的开销比很小, 理论上可以线性的降低编译时间(服务器集群的计算能力越大编译越快)
一个挺美好的想法就是: 有这个需求的人,捐个闲置的 VPS 出来(安装一个 compiler worker)作为 compiler farm 的一部分,然后大家共享整个集群的计算能力。
现在有 2 个问题:
- scala 编译过程的可并行程度有多高?(太低就不好水平扩展了)
- 有多少人需要这个东西?(其实也可以应用于别的语言,C/C++已经有比较成熟的东西,不过貌似都是大公司内部在用,而 scala 的使用者貌似不太多,其他语言的编译速度都还可以接受。动态语言不需要这个。)
现在自己是挺需要这个东西的,感觉做个简单的原型出来不难。关键有多少人需要这种东西,给点意见?