1 Creamliu 2024-09-18 09:06:48 +08:00 via iPhone 这个月刚从 jdk8 升级到 jdk21 ,还没上生产。 |
![]() | 2 huihuiHK 2024-09-18 09:08:22 +08:00 ![]() 等一波 java8 党 |
![]() | 3 yolee599 2024-09-18 09:10:51 +08:00 via Android ![]() jdk8 永远的神,从桌面到安卓再到后台服务,一个版本就够了 |
![]() | 4 cheng6563 2024-09-18 09:11:30 +08:00 字符串模板还没定稿吗 |
![]() | 5 a href="/member/chendy" class="dark">chendy 2024-09-18 09:12:11 +08:00 J8 人不请自来,公司项目,狗都不升,java7 主流,java8 先进,java11 动不动就 build 报错没人管,java17 的项目已经凉了 下班回去有空,自己的小玩具升级一手玩一玩就行了 |
![]() | 6 wxw752 2024-09-18 09:12:32 +08:00 ![]() 各位是真不审题啊,OP 说了本帖不欢迎刷 jdk8 梗。 现在那些中间件稍微新点的版本早不支持 8 了,你们是怎么够用的 |
![]() | 7 ted05 2024-09-18 09:12:34 +08:00 我已经用上 17 了 |
![]() | 8 Mogugugugu 2024-09-18 09:14:22 +08:00 to B 的项目已经开始慢慢的升 17 了,to G 的项目还不行,还得再等几年。 |
![]() | 9 DengDDDD 2024-09-18 09:15:18 +08:00 竟然支持 Markdown 写注释了 |
10 wysnxzm 2024-09-18 09:15:50 +08:00 把落后挂嘴边的习惯有时候得改改 |
![]() | 11 twofox 2024-09-18 09:21:11 +08:00 21 我已经用起来了 |
![]() | 12 Goooooos 2024-09-18 09:21:52 +08:00 还是等下个 LTS ,这个版本基本都是 Preview |
14 Greendays 2024-09-18 09:23:20 +08:00 半年前把公司的项目升级到了 JDK21 |
15 dcsuibian 2024-09-18 09:24:16 +08:00 能上 21 的我都上 21 了 |
![]() | 16 L0L 2024-09-18 09:24:18 +08:00 流的这个好像有点意思 |
![]() | 17 dragondove 2024-09-18 09:24:36 +08:00 感觉改变不大,大部分都是预览特性,zgc 大部分情况表现不如 g1 ,该用 g1 还是用 g1 。markdown 这个感觉是追潮流了,python 的文档之前就支持了 markdown ,不过我个人觉得不是很必要。现在就想着字符串模板什么时候重新设计好,希望不会比 jdk21 上的预览版本差多少。 |
18 jptx 2024-09-18 09:27:14 +08:00 Vector API 都第八次孵化了 |
19 salmon5 2024-09-18 09:29:08 +08:00 可以 java -XX:+UseZGC 用分带 ZGC 了 |
20 Huelse 2024-09-18 09:31:08 +08:00 @cheng6563 按这份邮件的意思是想做个更好的设计所以推迟了 https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html |
21 salmon5 2024-09-18 09:31:27 +08:00 https://github.com/openjdk/jdk/pull/17060 这个“低级”bug 也修复了,从 java8-23 |
![]() | 23 typing 2024-09-18 09:33:01 +08:00 via iPhone 我连 jdk8 都没用过,只记得 jdk 1.42 ( java 不是我工作/常用语言) |
![]() | 24 xubeiyou 2024-09-18 09:34:37 +08:00 用 17 的路过- - 感觉特么是不是都没人用 17 都是 21 了? |
![]() | 25 windghoul 2024-09-18 09:35:11 +08:00 @dragondove zgc 对比 g1 的数据文章有吗大佬 |
26 TWorldIsNButThis 2024-09-18 09:37:47 +08:00 via iPhone 看了下项目组的 jdk 升 17 的需求已经有人在做了,也就一个点 |
27 fffq 2024-09-18 09:44:58 +08:00 你发任你发 我用 java8 |
28 yty2012g 2024-09-18 09:45:23 +08:00 @windghoul 我自己使用情况来看。throughput 的影响,大概 ZGC 分代是 4.x%,G1 是 1.x%。延迟的话,不用说肯定是 ZGC ,基本就是 0ms 。footprint 没测过。我这边服务的堆是 8G 的。目前用的是 JDK 22 |
29 SuperManNoPain 2024-09-18 09:46:49 +08:00 生态能及时升级就好了,看样子再过一两年新项目使用 jdk21 基本没啥问题了 |
![]() | 30 clf 2024-09-18 09:52:35 +08:00 已经 jdk17 了,主要还是看 spring 等的选择。 |
31 zhouhu 2024-09-18 09:54:23 +08:00 ![]() 目前使用 G1 是比较好的,G1 在 latency 、throughput 、footprint 有很好的平衡。追求 throughput 使用 parallel GC ,追求 latency 使用 ZGC 。 |
32 zhouhu 2024-09-18 09:57:27 +08:00 推荐一个博主 tschatzl ,在 oracle 做 gc 优化的,他主要 g1 的优化。 https://tschatzl.github.io/ |
![]() | 33 interim 2024-09-18 09:58:07 +08:00 我司的重构项目已经上 jdk21 了 |
![]() | 34 windghoul 2024-09-18 10:00:11 +08:00 @yty2012g 感谢,我们现在全面使用 jdk17 + zgc ,目前表现效果还可以,之后再充分测试一下,有什么推荐的资料看看吗? |
![]() | 35 adoal 2024-09-18 10:00:13 +08:00 |
![]() | 37 Rorysky 2024-09-18 10:08:27 +08:00 @wxw752 任何产品都有生命周期,对于末期的(或者说只做维护修复 bug )产品不升级才是明智选择,因为从盈利上将已经不值得投入优化了 |
38 wysnxzm 2024-09-18 10:09:34 +08:00 ![]() @dragondove #17 ![]() 551/35298=0.015 705/18015=0.039 minor gc 平均时间 0.02ms 不到 major gc 平均时间 0.04ms 不到 注意时间单位是毫秒不是秒,还需要考虑吗少年? |
39 yty2012g 2024-09-18 10:10:54 +08:00 @windghoul #34 JDK17 的是不分代的 ZGC ,吞吐量的影响会更大一点,我自己实测是 7.x%左右,如果对延迟要求不是特别高,JDK17 建议使用 G1 吧 |
40 yty2012g 2024-09-18 10:11:57 +08:00 ![]() @Rorysky #36 差不多,在充分预热的情况下,高版本 gc 的吞吐量影响几乎可以忽略不计,像是我在 jdk22 用 G1 ,火焰图基本快看不到 GC 的开销了 |
41 jackmod 2024-09-18 10:12:17 +08:00 我们那边也突然开始 17+gradle8+spring3 了 以前连 spring 都不是,非常古老的玩意 |
42 4xxx 2024-9-18 10:13:36 +08:00 |
47 zhouhu 2024-09-18 10:28:56 +08:00 ![]() |
48 ZZ74 2024-09-18 10:33:18 +08:00 多少有点 java 程序性能调优的经验,第一条优化建议就是升级 JDK |
![]() | 49 cmlx1014 2024-09-18 10:35:35 +08:00 jdk17 苟个十年再找稳定版本吧。。 |
50 kiroter 2024-09-18 10:47:59 +08:00 用 kt 的都 17 了吧 |
51 cslive 2024-09-18 10:54:28 +08:00 ![]() 别急,springbooot 会出手 |
52 iamwin 2024-09-18 10:55:36 +08:00 国内已经死在 java8 了 |
![]() | 53 storyxc 2024-09-18 11:04:59 +08:00 自己用的项目目前在用 17 ,公司这种项目 真的升不动。 |
54 jorneyr 2024-09-18 11:06:50 +08:00 我们项目本来 JDk8 够用,后来使用了 Datagrip 的 MongoDB JDBC 驱动,这个驱动最低要求 JDK 17 ,所以升级到了 JDK 17 。 最期待的是等 SpringBoot 支持虚拟线程完善后再一次性升级到最新版。 |
![]() | 55 chenfang 2024-09-18 11:13:34 +08:00 @yty2012g #28 问下大佬 ,因为我们业务比较倾向于低延迟,于是测试 ZGC,有时候会 full gc..然后延迟情况很夸张, 增大了内存或者调了一下 ZGC 的相关参数 还是会出现这种情况, 而且 ZGC 貌似吞吐量对比 G1 会降低不少,很好奇你们没有 full gc 出现么? |
56 yty2012g 2024-09-18 11:18:55 +08:00 @chenfang ZGC 吞吐量是会下降不少,分代 ZGC 能稍微好点,但是还是比 G1 要差一点。full GC 的问题更大可能性的还是内存泄露的问题吧,既然使用了高版本 JDK ,那就开个 JFR 呗,然后看看到底是哪里的对象没有被回收掉。我这边的服务类似于数据采集,虽然 QPS 高,但是基本都是朝生夕死,基本没有长期存活的对象,所以目前没观察到 full GC 。 |
57 javaisthebest 2024-09-18 11:26:46 +08:00 ![]() 刷版本号这个臭毛病到底是从哪个语言开始的? jdk8 jdk11 jdk21 搞这三个大版本就差不多得了 后续的更新全特么那种逗你玩的更新 |
![]() | 58 beginor 2024-09-18 11:28:46 +08:00 有没有 jdk6 继续苟活的? |
59 Rickkkkkkk 2024-09-18 11:29:28 +08:00 新版本的 java 一个大改进是 gc 时间,其实这一点就应该推动很多人去升级了 |
60 Rever4433 2024-09-18 11:30:53 +08:00 @wxw752 #45 现在银行 toB 虽然对技术要求不多,但是会定期进行漏洞扫描,倒逼我们的技术进行升级。我们已经被迫升级到了 JDK21 。 |
![]() | 61 ikas 2024-09-18 11:33:30 +08:00 唯一可惜,字符串模板没了 |
![]() | 62 Mark24 2024-09-18 11:41:57 +08:00 ![]() JDK 的大版本是 向后兼容么? JDK23 可以兼容 JDK8 ? |
![]() | 63 msg7086 2024-09-18 11:46:36 +08:00 @javaisthebest 换成 1.8 1.11 1.21 会让你舒服很多吗…… |
![]() | 64 msg7086 2024-09-18 11:47:47 +08:00 ![]() @Mark24 不完全兼容,我们代码库从 8 升到 17 已经搞了好几个月了,最明显的问题是大量基于 powermock 的测试代码需要重写。 |
![]() | 65 felixcode 2024-09-18 11:49:11 +08:00 via Android jdk8 加 CentOS7 可以混到延迟退休,谁有意见那就是别的都不稳定,都不是企业级环境 |
![]() | 66 harry90 2024-09-18 11:53:38 +08:00 说实话虽然领导想升级 jdk17 但是我不怎么赞成 做了快 10 年的 toB 系统 这玩意动起来吃力不讨好 |
![]() | 67 devswork 2024-09-18 12:01:02 +08:00 完了,目前正在用 21 ,还使用了 STR 字符串模板,然后 23 好像没有了字符串模板了,怎么办 |
68 jorneyr 2024-09-18 12:04:44 +08:00 |
70 Ayanokouji OP |
71 hetal 2024-09-18 13:24:44 +08:00 我们 mysql 都在用 8.4.2 了,J8 的同学还在用 5.7 么~ |
![]() | 72 dragondove 2024-09-18 13:26:22 +08:00 @jorneyr preview 特性,本来就没保证一定是这样的 |
![]() | 73 dasbn 2024-09-18 13:31:32 +08:00 等待 JDK 25 LTS |
74 yazinnnn0 2024-09-18 13:38:26 +08:00 ![]() |
75 yazinnnn0 2024-09-18 13:42:12 +08:00 我记得当初 kotlin 用户(还是官方来着?)说 kotlin 1.3 版本语言特性相当于 java 20, 不知道 java 23 的易用性比得上 kotlin1.3 了没 |
![]() | 76 ShotaconXD 2024-09-18 13:45:45 +08:00 还在用 17, 说实话除了语法糖之外, 好像没感觉到太明显的变化. 也可能是市场上大多数的使用场景其实..... you know |
77 WindProtect 2024-09-18 13:45:49 +08:00 非 lts 没啥好讨论的感觉。 |
![]() | 78 leegradyllljjjj 2024-09-18 13:50:35 +08:00 via iPhone 八爷是你们能讨论的吗?别给八阿哥脸上抹黑 |
79 zhouhu 2024-09-18 13:59:57 +08:00 @ShotaconXD GC 方面有很多的优化,不要只是关注语法。 |
![]() | 80 iv8d 2024-09-18 14:12:29 +08:00 jdk8 永远的神,从桌面到安卓再到后台服务,一个版本就够了 |
81 RainCats 2024-09-18 14:23:59 +08:00 @Mogugugugu ToG 的除非有人搞了 java8 几个大的 bug ,然后才会让升级版本,不然别想了 |
![]() | 82 RyanPoy 2024-09-18 14:56:04 +08:00 @javaisthebest 从.net 开始。不是到什么时候出来一个 5.0 。然后 java 就由 1.4 直接到了 5.0 ,然后就直接开始了。 |
83 yazinnnn0 2024-09-18 15:03:15 +08:00 @WindProtect 474: ZGC: Generational Mode by Default 467: Markdown Documentation Comments 已经稳定的特性可以讨论一下, 貌似只有一个分代 zgc 和 md 注释 Vector API (Eighth Incubator) 这玩意儿咋辣么难产, 都第八次孵化了 |
84 Leviathann 2024-09-18 15:09:17 +08:00 @yazinnnn0 听说在值类型做好之前会一直处于孵化状态 |
![]() | 85 iintothewind 2024-09-18 16:02:58 +08:00 把 Scala 的 pattern-match ,control flow ,case class 直接抄过来,==代替 equals ,默认不可变集合类型,变量声明默认 final , 直接全搬过来就好了,这样一点一点的抄,太慢了。 |
![]() | 86 GameAuto 2024-09-18 16:16:40 +08:00 多年后端程序员,并没有持续关注 javasdk 版本的习惯,因为我用了三年多 kt 了,前几个项目一直在用 kt1.5 ,目前新项目也准备用 kt2.x 了 |
87 asd999cxcx 2024-09-18 17:43:06 +08:00 21 之后的下一个 LTS 是啥? |
88 Ayanokouji OP @asd999cxcx 25, 两年一个 lts |
![]() | 89 yohole 2024-09-18 17:49:59 +08:00 将来要升 JDK 的唯一动力可能是 Spring 的生态最低要求,例如 SpringBoot ,Spring 等几个大框架最新版本最低要求都至少 11 以上了 |
90 Ayanokouji OP @yohole SpringBoot3 要求 jdk 最低 17 ,另外 spring boot2 去年已经结束社区维护了 |
![]() | 91 iamppz 2024-09-18 17:59:54 +08:00 via iPhone 刚降回去,升级太麻烦了,很多依赖不支持,字符串模版、文本块都还是预览特性,还是直接 kotlin 混合使用丝滑 |
![]() | 92 yohole 2024-09-18 18:03:32 +08:00 @Ayanokouji #90 嗯差不多,单纯升级 JDK 的动力不多,但是升级 Spring 生态的动力相对高点,但是升级 JDK 这个在大中小企业是需要衡量收益和风险的,甚至还要考虑迁移成本,还涉及到运维、部署等等,所以目前主力还是 8 |
93 cyningxu 2024-09-18 19:46:56 +08:00 via Android 你发任你发,我用 java8 |
94 yty2012g 2024-09-18 20:11:47 +08:00 今天下载了 Orcale OpenJDK 23 ,压测了一下。G1 GC 的吞吐量还是比 ZGC 强不少,倒是 Vert.x + Virtual Thread 效果还是挺不错的 |
![]() | 95 xueyuehua 2024-09-18 20:20:40 +08:00 虽然我们现在项目也是都用 17 ,但是 17 有什么新特性,就没人用过,jdk8 那些用的都不多,能跑就行 |
97 kenvix 2024-09-18 20:36:26 +08:00 Vector 和 Vanilla 到底啥时候能实装的 |
98 forgottencoast 2024-09-18 21:31:41 +08:00 |
![]() | 99 BBCCBB 2024-09-18 21:49:53 +08:00 stream tolist 什么的, 什么时候能加入推断集合大小.. 每次直接 new arraylist(), 默认 capacity 10, 我 3 个元素他也是 10 个, 几百个元素也是 10 个, 去 stream map tolist 要扩容好几次.. 更多的元素更惨.. 扩容+额外的空间浪费. rust 对于明确大小, 没有 filter 之类修改的, 都会直接用明确大小.. |
![]() | 100 RoccoShi 2024-09-18 22:09:00 +08:00 jdk8 升级到 jdk17 已经忙活一年多了.. |