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