大家 Java 21 的 虚拟线程用起来了吗?

2024-02-01 21:48:18 +08:00
 hepin1989

我说一下我目前的数据:

线程数下降 1200+ 内存下降:5pt CPU 下降:10pt

感觉并没有 N 倍提升,是不是因为我的应用本身就是大部分都是 异步代码的 原因?

5830 次点击
所在节点    程序员
53 条回复
wbd31
2024-02-01 22:15:17 +08:00
pt 是什么单位?
hepin1989
2024-02-01 22:17:59 +08:00
@wbd31 你好,就是百分比,比如原来是 80%, 改造后 70%。
zhaoziyuan1989
2024-02-01 22:18:13 +08:00
可能是在说 percent?
ikas
2024-02-01 22:27:18 +08:00
虚拟线程最大优势不就是使用传统编程模式实现异步一样的效率么?
cabing
2024-02-01 22:29:44 +08:00
你的版本升级好快了啊。好多项目都是 java8😂java15 都没有
hepin1989
2024-02-01 22:31:36 +08:00
@ikas 我觉得并没有,日常还是写 Flux/Pekko Stream 快一点,而且我在 ConcurrentHashMap 上遇到了 pin Carrier thread 。无解,如果改成全异步的 cache ,反而 CPU 的收益只有 5 个百分点了。
lmshl
2024-02-01 22:47:58 +08:00
https://imgur.com/a/ZyMpzTR
在用了在用了,我现在就写 vt
winterbells
2024-02-01 22:49:04 +08:00
第一次见到百分比用 pt 表示…这是缩写还是扩写了%
kkwa56188
2024-02-01 23:13:10 +08:00
If it ain't broke, don't fix it.
如果是生产环境:
非必要不更新,
非必要不升级,
非必要不用新 feature.
跑的好好的东西, 能不动就不动, 一个小版本号都不动.

如果自己折腾, 那随意.
BBCCBB
2024-02-01 23:19:11 +08:00
你本来就是异步代码, 提升空间不大.

而且 jdk21 还没 ScopedValue, 不完善.
ikas
2024-02-01 23:19:22 +08:00
锁的问题需要库,框架适配
毕竟虚拟线程 21 才正式发布,锁与 ThreadLocal 是上生产的最大阻碍

我们基础框架已经升级到了 21,几个项目陆续也升级了,但是虚拟线程只在一个新项目测试版本中开启..
ByteCat
2024-02-01 23:19:33 +08:00
项目都用 Kotlin 写的……换到 Java21 有用吗
gongxuanzhang
2024-02-02 00:35:14 +08:00
我觉得线程池换成虚拟线程性能优化是 0
如果你是 new 出来的线程倒是能优化..
hepin1989
2024-02-02 01:17:43 +08:00
@ByteCat 有啊,虚拟机的改进还是不小的。不过语法就是抄袭 Kotlin 的,提鞋都不配。
hepin1989
2024-02-02 01:18:16 +08:00
@BBCCBB 是的,目前我也是这样认为的。
lidashuang
2024-02-02 01:18:36 +08:00
@kkwa56188 总有一天没法维护
hepin1989
2024-02-02 01:22:05 +08:00
@lidashuang 改动很小的,不超过 30 行代码老师。
tramm
2024-02-02 08:24:48 +08:00
21 都没升呢
echo1937
2024-02-02 08:32:42 +08:00
@gongxuanzhang 结构化并发实装前,确实少些个意思。即便如此,虚拟线程比线程池灵活,而且即使是线程池,也有 corePoolSize/maximumPoolSize 等问题,该 new 的时候还会 new ,总之还是乐见于多一种方式的。
dbpe
2024-02-02 08:45:12 +08:00
@ikas 了解下 JEP 453 Structural Concurrency 。。

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

https://tanronggui.xyz/t/1013518

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

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

© 2021 V2EX