virtual thread 在 jdk21+graalvm 条件下简单测试

2023-09-20 10:56:14 +08:00
 yazinnnn
测试框架是 quarkus(resteasy reactive) 3.3.3
cpu i5 10400
jdk 版本



api 响应内容



测试代码(直接返回字符串与模拟进行 100 毫秒业务后返回字符串)

https://gist.github.com/yazinnnn/92a90ddb81579fdc619ca14395bf3dc2

测试命令(wrk 10 线程 5000 连接 5 秒)

wrk -t 10 -c 5000 -d 5s ~


首尾的 rss 分别为启动时和测试后的内存占用
native 结果(堆内存 200m)



jvm 结果(堆内存 200m)



两者的应用大小及启动时间对比

3301 次点击
所在节点    程序员
22 条回复
xiaocaiji111
2023-09-21 10:54:42 +08:00
极限性能还是要靠线程池+netty 那一套网络模型,基本上 go 也好,rust 也好,网络库最终都走了这套。不过可以大大降低普通人在业务开发中编写高性能程序的难度,已经很不错了。编译成 native 好像非企业版,默认是 serialGC ,真难顶。
litchinn
2023-09-21 11:43:11 +08:00
https://www.bilibili.com/video/BV1Ju4y1Q788
这个视频我觉得讲的听清楚的

测试我觉得应该是写个请求,请求其他服务器资源。对比虚拟线程和传统多线程的响应,以及试试虚拟线程的数量级

虚拟线程和原生镜像,使用前需要慎重考虑当前场景是否适用,感觉他们更像是加入的新功能,而非可以完全替代旧有功能的进化版

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

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

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

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

© 2021 V2EX