wsl2 和 Windows 本机编译性能为什么差距不大

1 天前
 misaka9527
我之前看见别人说, 在编译和启动速度上,wsl 上的 linux 都比 Windows 强,我使用同一台机器,使用 maven 编译同一个项目,实际对比了下,时间没啥差距,为什么?(注:wsl 我分配的全部核心和 16G 内存,编译的项目也复制到 wsl 内部了)。

我的 mac mini m1 ( 16+256 )倒是在编译和启动方面都有显著提升,比我的 Windows 电脑(amd R7 5800H + 32G + 512G)快一倍了
2061 次点击
所在节点    程序员
21 条回复
Yanlongli
1 天前
这个不绝对,有些编程语言的编译器针对 linux 系统有优化
xgdgsc
21 小时 56 分钟前
java 编译是吃 io 还是 cpu ,node 会不会差别比较大
aloxaf
21 小时 41 分钟前
主要是那种喜欢创建一堆进程的构建工具跑起来差别比较大吧
ca2oh4
21 小时 34 分钟前
maven 用什么 wsl
SonicKang
21 小时 33 分钟前
mac mini 主要是 io 太有优势了
xtreme1
21 小时 31 分钟前
win 主要是 ntfs 处理大量小文件比较慢, java 顶多就几百几千个 .class 其实还好
murmur
21 小时 31 分钟前
5800H 的性能不占优吧,7840 这个级别就好多了
minami
20 小时 38 分钟前
他们说的编译速度差距基本是 C/C++那种编译。不过也挺扯淡的,因为影响的变量也太多了。我反正 mac 上装了 linux 容器,用 gcc 编译,实测速度也就那样
misaka9527
20 小时 37 分钟前
@xtreme1 我还试过 Windows 自带的 dev drive , 用 ReFs 来存储源代码和相关库,微软自己说用于编译挺牛的,实际使用起来,效果也不明显
interim
20 小时 36 分钟前
maven 指定下构建线程数看看,默认是单线程跑的,两者 IO 差距不大的话不会有大差异的。
misaka9527
20 小时 33 分钟前
@minami 主要我研究相关问题时,搜到的都是说 Windows 的文件系统比 linux 慢,我就换成 linux 试了下,没想到没啥提升,用 Windows 的 ReFs 试了下,效果也不明显,难不成这方面没啥瓶颈,可能最主要还是看 CPU 的频率吧
misaka9527
20 小时 31 分钟前
@interim maven 已经设置了 -T 1C 多线程了, 但是指定线程是多模块构建用的,我是单模块编译,javac 本身好像是单线程编译的
janus77
20 小时 30 分钟前
说明你的项目编译速度已经快拉满了,再提升只能靠硬件了。
mac 不就是换了个硬件么?不要看都是 16G 就觉得内存一样,其实 mac 的内存和 win 的内存还真有区别的。
minami
20 小时 28 分钟前
@misaka9527 #11 ntfs 性能没有问题,msvc 编译甚至比 mingw 还快,当然有些菜鸡都不知道 msvc 怎么开多线程编译,那就没办法了。一般 windows 上编译卡住都是杀毒把磁盘卡住了,完全是误会
BenjaminSu
20 小时 21 分钟前
有没有一种可能?
WSL 的行为,不被防火墙检查,所以比较快?
Geon97
20 小时 15 分钟前
主要是 io 的问题吧
yolee599
20 小时 12 分钟前
因为 wsl 里面的 linux 无论用什么文件系统,最终落盘的时候都会转成 ntfs (假设你用的是这个)保存到磁盘,这一道转换都要浪费不少性能。你试试把磁盘直通 linux 看看
misaka9527
19 小时 54 分钟前
@BenjaminSu 防火墙都关了的
@yolee599 我看相关文档,说两边系统是隔离的,只要不通过 /mnt 的方式来跨系统访问,应该不会进行转换吧,所以我测试也是将项目放到 wsl 里了
Ipsum
19 小时 51 分钟前
试试用 wsl 在 ntfs 上编译 openwrt ,会慢到你怀疑人生。
yolee599
17 小时 39 分钟前
@misaka9527 #18 编译出来的文件也要保存啊,最终可能就是你在 Windows 资源管理器里的 .vmdk 之类的文件,你也可以把编译输出文件夹挂载到 tmpfs ,把它放内存里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1158513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX