现在手头负责的单体项目是 15-20 秒左右, 有点影响自己的写代码节奏。。加一些启动参数能达到 10-12 秒,感觉变化不大,如果能在 5 秒内启动该多好。
之前待过的公司也都是单体 Java 项目,启动速度慢的能达到 1 分钟, 大家现在手头的项目启动速度都是什么级别的呢? 有没有影响到你们的思维节奏?
现在手头负责的单体项目是 15-20 秒左右, 有点影响自己的写代码节奏。。加一些启动参数能达到 10-12 秒,感觉变化不大,如果能在 5 秒内启动该多好。
之前待过的公司也都是单体 Java 项目,启动速度慢的能达到 1 分钟, 大家现在手头的项目启动速度都是什么级别的呢? 有没有影响到你们的思维节奏?
补充一下,有人可能之前没想过去优化 Spring 项目的启动速度。 至少有几个启动参数是效果非常好的, 比如
-XX:TieredStopAtLevel=1 -Xmx1024M -Xms1024m -noverify

参考:
|
yitingbaiJun 22, 2021
1
用到的东西多了启动肯定慢啊, 如果有条件可以把项目分成几个模块, 分别开发分别调试
|
|
3
拆成不同的组件,写好 CI,提交的时候自动 rolling update,这样就方便了
|
|
pmispigJun 22, 2021
4
快的 60 秒,慢的 180 秒。。。你这 15 秒超神
|
|
peyppicpJun 22, 2021
5
golang 项目,2s
|
|
csliveJun 22, 2021
6
配置垃圾,2 分钟起不起来
|
|
kwanzaaJun 22, 2021
8
故意放慢速度来打印 log 提供仪式感,不然裸载 2s 。
|
|
zen1Jun 22, 2021
10
本地最少 2min+
|
|
wwwzJun 22, 2021
11
慢啊,java 用 jrebel 热部署,有的时候还是需要重启
|
|
12
纠结这个感觉意义不大啊
|
|
13
影响思路具体如何影响,是每次写完调试,重启项目,慢?
感觉我不会那么频繁遇到需要重启的情况,写完一套逻辑,重启一次,一天也就十来次。 另外解决思路很简单啊,自己买个 amd 5800h 芯的本子,刷 linux 系统,不管重启还是编译都快到赏心悦目 |
|
simple2025Jun 22, 2021
14
@zzzmh 10 来此重启,我 2 分钟就用完了
|
|
pkoukkJun 22, 2021
15
2s 左右?
现在写 tdd,新代码 cover 的差不多了才会启项目搞集成测试,启不了几次 |
|
wr516516Jun 22, 2021
16
好奇你加的什么启动参数
|
|
18
|
|
reecoJun 22, 2021 via iPhone
19
60w 行代码,编译 5 分钟,启动 15 分钟
|
|
L5tEU4WX072p5P42Jun 22, 2021 via iPhone
20
35 分钟
|
|
21
带薪启动,不要在意速度。正好可以去喝一杯咖啡
|
|
jandaJun 22, 2021
22
junit 单元测试
|
|
NUTJun 22, 2021
24
这个问题核心是在于,如何快速 debug 吧。
想好逻辑,用 TDD 减少 debug 次数,debug 很费时间,我认为如何降低 debug 次数,比考虑项目启动优化,要有意义。 俗称 脑子跑代码。。。 各种设计原则用一用,什么单一原则,开闭等等。 如果对项目启动有要求,差那几秒没啥意义,现在都是容器化时代了,蓝绿红黑,随便搞搞就解决了。 |
|
dream10201Jun 22, 2021
25
在主程序的第一句:print("启动成功")
|
|
byte10Jun 22, 2021
26
|
|
hsuveeJun 22, 2021
27
Java 曾有一个 20 分钟
|
|
yuancoderJun 22, 2021
28
php 一秒内
|
|
yungo8Jun 22, 2021 via Android
30
启动几分钟,编译十分钟……
|
|
simple2025Jun 22, 2021
31
@byte10 golang 是启动快,但是写的时候想死
|
|
xlogerJun 22, 2021
32
Android 项目,冷启动要 2 分多钟,打一个 release 包要 6 分钟。时常吐槽说等编译的时间已经超过我 debug 的时间了。耗时分析有一半时间是在 kotlin 编译上,为此还看了下别人的优化方案: https://juejin.cn/post/6854573211548385294
看完放弃自己优化的念头了。我需要公司配个更好的 CPU ...... |
|
LeonardJun 22, 2021
33
公司抠,电脑配置不行,慢就慢呗,反正我按点下班,慢浪费的也不是我的时间
|
|
otakustayJun 22, 2021
34
冷启动 3 分钟左右,有缓存的热启动 5 秒左右,热更新几乎秒完成
|
|
HDMItoDPJun 22, 2021
35
300 多秒
|
|
JunzhouJun 22, 2021
36
i7-7700 14s,M1 8s
|
|
nxforceJun 22, 2021
37
这个没有固定指标的吧?
同一个项目,有人 10 核 5G 主频,64G 内存随便开。 有人双核赛扬 8g 内存卡半天。。。 |
|
sprite82Jun 22, 2021
38
i5 7500 16G 内存 启动 15s 左右,但是我一天启动次数不超过 10 次
|
|
polo3584Jun 22, 2021
39
最长的时候 500 多秒,后面通过一些注释终于降到了 150 秒内。
|
|
GreatshuJun 22, 2021
40
10 分钟,刚好够去一次厕所
|
|
nxcdJaNnmyF9O90XJun 22, 2021
41
go 的编译速度快
|
|
bghtyuJun 22, 2021
42
go 启动很快,但是编译也挺慢的
|
|
zhangggJun 22, 2021
43
单体还好,最多几分钟,全新起一套完整服务要超 24 小时
|
|
hapimanJun 22, 2021
44
用 Go,5 秒内启动
|
|
gtx990Jun 22, 2021 via Android
46
Java guice
启动倒是很快,几秒就行 编译,docker 打包要几分钟 |
|
47
项目本地启动不起来,环境上部署一下五分钟过去了。调试绝大多数靠单测,定位问题用 arthas
|
|
ysicingJun 22, 2021
48
Go 启动 2s,编译 10s 左右
|
|
heheda11Jun 22, 2021
49
Python fastApi 0.1s ~
|
|
lixingjunJun 22, 2021
50
nodejs 1.5 秒,不过这样比较似乎意义不大
|
|
ConfusedBiscuitJun 22, 2021
51
巨无霸 Java 项目,IDEA 导入一次 20 分钟+,启动一次 5 分钟+,打包 1.5GB
|
|
52
@xloger "打一个 release 包要 6 分钟"
apk 打包有一些时间是用在压缩 asset 上,apk 的本质是 zip,每个文件都是单独压缩的,如果文件没有变,可以直接复用上一次压缩结果(前提是要保留上一次的压缩包作为对比对象) 这样速度就很快了。 |
|
akiraJun 22, 2021
53
java 的项目啊。。分钟级别都是能接受的
|
|
HunterPanJun 22, 2021 via iPhone
54
1 分钟内可接受,自己的项目一般 30s 内
|
|
wdlthJun 22, 2021
55
20 秒左右吧
|
|
56
要那么快干啥,启动时间越长划水时间越久
|
|
imbushuoJun 23, 2021
57
warmup 两小时……
|
|
eudoreJun 23, 2021
58
go 直接启动 1 秒,编译启动 5 秒内。
|
|
xe2vherdJun 23, 2021 via iPhone
59
春节的时候做主站的项目,编译十分钟启动十分钟。
|
|
privilJun 23, 2021
60
java 项目从 20 s 到 120s,话说用 openj9 启动会快很多。
|
|
free9fwJun 23, 2021
61
30w 行代码大概 85s
|
|
xingguangJun 23, 2021
64
18 年的时候接收的一个项目还用的 webpack1,启动一次五分钟,在忍了一年以后我升级了,启动速度不到一分钟
|
|
mydJun 23, 2021
65
php 不需要启动
|
|
janxinJun 23, 2021
66
听上去是个 Spring 项目...
|
|
yazinnnnJun 23, 2021
67
从打印第一行日志到处理第一个请求 1.5s,vertx+kotlin,不过这有什么意义呢....
用 spring 的话肯定慢阿,因为 spring 慢就喷 java 烂未免也太狭隘了 |
|
TinyangJun 23, 2021
69
3 分钟
|
|
chainchanJun 23, 2021
71
20 分钟
|
|
byte10Jun 23, 2021
72
@chenqh 我觉得 nodejs 写起来方便,写的外包项目,写的小工具,go 也不错啊,可以编译成可执行文件,也是很舒服的,写点小工具方便,安卓,macos,ios 那些都可以直接跑
|
|
CbdyJun 23, 2021 via Android
74
秒级
|
|
zzzmhJun 23, 2021
75
@wangsongyan 看水平,我是半吊子,我就省心用 ubuntu,因为新版 amd 的核显驱动老出问题,就 ubuntu+5.10 内核最省心。。。否则我可能会首选 deepin,因为 deepin 带的微信什么的至少是调试好的,可以免去我自己调试。。。。然后如果是大佬,推荐 arch debian fedora manjaro,这种我只敢在虚拟机里玩,笔记本玩过一次 manjaro,从入门到重装系统,只花了一个月
|
|
HannibaIJun 23, 2021
76
150w 行 C++,编译 5 分钟,启动 4-5s 吧
|
|
xiluoJun 23, 2021
78
尝试换到 Graalvm 试试呢,启动速度提高 50 倍
|
|
luckycJun 23, 2021
79
python flask
<1s |
|
thetbwJun 23, 2021
80
大概 27 分钟吧
|
|
x940727Jun 23, 2021
82
@byte10 Go 的编译期没有任何优化的,而且 Go 的语法对编译器更友好……Java 也有不优化的编译器,AOT 的速度其实也勉勉强强,主要有反射会影响静态编译。
|
|
83
@byte10 Java 也可以随时写随时跑, 想写启动快的 Java 可以尝试 quarkus, 你要有勇于离开 Spring 的魄力才行, 当然现在 spring native 也在迭代中。
|
|
chihiro2014Jun 23, 2021
84
140s-200s 左右?
|
|
wanguorui123Jun 23, 2021
85
秒起
|
|
3dwelcomeJun 23, 2021
86
我其实挺好奇 chrome 开发组是怎么缩短启动时间的,我自己编译浏览器,一般启动至少要 5 分钟以上。
因为 C++必须把无数.obj 文件链接成一个 exe,对于 chrome 这种巨无霸体量,这一步特别的费时间。 然后我搜了一下谷歌,还真有 chrome.dll 编译优化,blog.llvm.org/2018/01/improving-link-time-on-windows-with.html 。 诀窍就是换编译器,一开始是 MSVC,编译 chrome.dll 用时 507.17s 。换了 CLang 之后 34.76s ,10 倍速度提升。 |
|
sunnywxJun 23, 2021
87
前台 war,在服务器上大概 5 分钟,😂
|
|
FlexGapJun 23, 2021
88
golang 的项目,大概七八秒钟
|
|
MithrilCookieJun 23, 2021
89
借楼问一下,生产环境 PASS(公司自建 PASS)下容器的启动速度远远比不上开发机(本人用 m1 mac),这种情况正常吗? SpringBoot 的单体应用,本地十几秒,生产上两三分钟(容器是 4 核 8g 的),感觉跟树莓派是一个级别的
|
|
ylsc633Jun 23, 2021
90
作为一个刚刚从 Golang 转到 java 的开发者来说
java 一启动.. 真的慢 问题是 java 项目是个新写的项目 代码估计就几万行吧 |
|
ychostJun 23, 2021
91
5 分钟
|
|
mreasonyangJun 24, 2021 via iPhone
92
怎么定义启动速度快慢呢?是以 JVM 完成启动和初始编译为准,还是以服务 ready 可供调用为准?如果是前者,那可以考虑楼上的建议。如果是后者,那么只要是用了连接池的项目都不会快,同时这种情况下与长尾的建连相比,JVM 相关的启动耗时可以忽略不计了
|
|
AiloliJun 24, 2021
93
vue 1 分钟+-
|
|
johnniangJun 24, 2021 via Android
94
|
|
yizmaoaaJun 24, 2021
95
Quarkus 2 秒。楼上有人提 Spring Native 。应用场景不一样。Graalvm 打包后的 native-image 是秒起,但是打包速度是很慢的。用都没用过的东西就别瞎推荐了-
|
|
telan233Jun 24, 2021
96
java 编译+启动 4 分钟
|
|
laobodslrJun 25, 2021
98
200S 左右
|
|
99
启动时加上-Dspring.main.lazy-initialization=true 或者在配置文件里加上这句话。
开启全局懒加载,启动速度非常快! 但是快也是有代价的,参考这里: https://blog.csdn.net/peterwanghao/article/details/95617046 |
|
DreamerwwrJul 8, 2022
100
@polo3584 用的什么注释?
|