为什么 Java 在 Windows 上编译比 Linux 慢这么多

2022-09-25 13:39:38 +08:00
 sprite82

主机是 win10,虚拟机是 Debian ,cpu 是笔记本的 amd 4800h

项目地址 https://gitee.com/y_project/RuoYi-Vue.git

win10 要 7.8 秒,Linux 上只要 3.2 秒, 都是 1.8.0_191, win 上也关闭了 defender 对文件夹的扫描

6037 次点击
所在节点    程序员
27 条回复
kkocdko
2022-09-25 14:00:09 +08:00
iluolSNS
2022-09-25 14:02:18 +08:00
@kkocdko thx
sprite82
2022-09-25 14:05:49 +08:00
https://www.zhihu.com/question/504442976 知乎上找的一个答案,不是 Java 编译,讲的是小文件访问性能问题
sprite82
2022-09-25 14:11:53 +08:00
另外还有个 i5-10500 台式机的,这个 cpu 单核参数跑分和 4800h 是很接近的,win10 主机编译成绩是 4.5 秒,Linux 虚拟机是 3.1 秒多。
虚拟机上 amd 和 Intel 成绩几乎一样,Windows 上也差的这么多
iamwin
2022-09-25 14:17:43 +08:00
你把反病毒的东西关了试试看
ShuA1
2022-09-25 14:24:49 +08:00
IO 性能的问题, 这也是为啥有的程序员喜欢用 Mac
ShuA1
2022-09-25 14:25:41 +08:00
@iamwin 可能有原因,最主要的原因主要是 Windows IO 层的问题。
sprite82
2022-09-25 14:36:56 +08:00
@iamwin 已经排除 Jdk 和代码所在文件夹了,没排除之前,也就比现在多零点几秒

@ShuA1 io 肯定有关联,你看我 #4 发的,Intel 那个成绩 比较符合我的预期,有差距,但不应该这么大
imzcg2
2022-09-25 14:55:25 +08:00
建议把开发环境转移到 wsl2 里
mmdsun
2022-09-25 16:54:43 +08:00
因为 Windows 对文件做了太多额外的处理,NTFS 也有很多不需要的日志和选项可以关闭。比如:Windows 上拷贝文件都有一个“暂停”的按钮,暂停后 U 盘、磁盘拔掉,下次再插入点“继续”还能接着复制,进度也不会中断。

要速度就用 WSL 2 吧。编译速度比原生 Ubuntu 都要快,拿 ThinkBook 14 实测的。
Goooler
2022-09-25 17:42:04 +08:00
Linux > Mac > Win
ZhiyuanLin
2022-09-25 18:15:27 +08:00
加 Windows Defender 白名单,关闭 BitLocker ,都能快点
flynaj
2022-09-25 18:24:36 +08:00
文件系统,ext4 性能比 NTFS 好
seaswalker
2022-09-25 18:30:24 +08:00
wsl2 速度快得多,能和 m1 mbp 一致了
ysc3839
2022-09-25 19:13:31 +08:00
@mmdsun 暂停那个功能要传一个 COPY_FILE_RESTARTABLE 参数进去的,不传的话理论上不会影响性能吧
mmdsun
2022-09-25 19:22:48 +08:00
@ShuA1 也可能是 NTFS 文件系统原因,换 ext3 ,ext4 试试看。
geekvcn
2022-09-25 21:28:25 +08:00
NTFS 4K 性能比 ext4 高好不好,windows 如果你装了杀毒软件,输出目录没加白名单,杀软会影响性能
vhwwls
2022-09-26 01:46:29 +08:00
@geekvcn #17 楼上那个兄弟表述有误,现在的发行版默认都用 xfs 了,用 ext4 有点开倒车
chenjiangui998
2022-09-26 10:49:55 +08:00
是这样的, i5 12500h, windows java 编译同个项目 maven 离线模式, 单线程 38 秒, linux12 秒, wsl 12 秒. macbook14 m1 pro 10 秒
多线程 windows 18 秒, linux 9 秒, wsl 9 秒, macbook m1 pro 7 秒
不插电 windows 45 秒 m1 pro 还是 7 秒
风扇 windows 起飞, mac 0 转
续航 windows 2 小时不到, macbook 14 差不多 7 小时
binge921
2022-09-26 11:07:43 +08:00
m1 max 表示 只需要 2.5 秒

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

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

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

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

© 2021 V2EX