公司的游戏服务器从 java8 升级到 java21 后带来的好处和问题! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
lcingOnTheCake
V2EX    程序员

公司的游戏服务器从 java8 升级到 java21 后带来的好处和问题!

  •  
  •   lcingOnTheCake 123 天前 1625 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    给项目的游戏服务器从 java8 升级到了 java21 ,感觉实打实的好处有 2 个

    第一个虚拟线程对 http 服务器性能的加持,有了虚拟线程,以前需要负载均衡处理来分散的并发问题,现在单节点就可以应付了。举个例子,如果原来的 http 服务线程池开 500 个线程,如果 http 处理程序中有 IO 阻塞操作,那么这个服务器的并发量就是 500 ,不能再多了。而实际上,因为是 IO 等待,服务器的 CPU 都是空闲的,但是却不能处理更多请求了,因为路就这么宽。有了虚拟线程后,这个限制就没了,来多少并发都没事,只要内存和 CPU 够就可以了。

    第二个是分代 ZGC 。不能说原来的 G1 不好,但是 G1 有性能波动也是事实,STW 的时候停顿几十毫秒甚至几百毫秒还是挺常见的,对游戏服务器来说不友好。有了 ZGC ,STW 都是微妙级别了,超过 1 毫秒的都挺少,性能上很平滑稳定,对游戏服务器而言,是一个巨大的进步。

    至于升级 java21 带来的问题,目前唯一碰到的恶心的问题是反射会出问题。这是由于 java9 开始对权限的控制变得严格了,原来通过反射访问 private 字段,现在需要模块导入了。作为一个临时的解决访问,在启动进程上加了,就解决了问题 --add-opens=java.base/java.util=ALL-UNNAMED
    --add-opens=java.base/java.lang=ALL-UNNAMED \

    升级 java21 还会带来什么好处或者问题,大家也可以分享下!

    scmod
        1
    scmod  
       122 天前
    --add-opens 真好用
    Mrun
        2
    Mrun  
       122 天前
    现在游戏行业后端不还是 C++、lua 、golang 为主吗?
    Rat3
        3
    Rat3  
       122 天前
    @Mrun 老项目很多 Java 的,最起码某个千万 dau 的游戏服务端是 Java (还是 8 )
    Rat3
        4
    Rat3  
       122 天前
    私以为 VirtualThread 接口设计的很好,迁移成本很低,基本改几行代码就可以去测了
    lcingOnTheCake
        5
    lcingOnTheCake  
    OP
       122 天前
    @Meld 是的,基本没怎么费事就迁移到 21 了
    Rat3
        6
    Rat3  
       122 天前
    @lcingOnTheCake 哥们在哪家?服务端用 java 的现在很少了,感觉都是熟悉的那几家
    lcingOnTheCake
        7
    lcingOnTheCake  
    OP
       122 天前
    @Meld 小公司,不是什么知名的游戏
    Q2297045667
        8
    Q2297045667  
       122 天前
    @Mrun MC:你说得对,但我不同意
    Q2297045667
        9
    Q2297045667  
       122 天前
    G1 在 MC 里面真的拉夸,然而,大多数人的启动参数却还是在用 G1
    flowerains
        10
    flowerains  
       119 天前
    老项目一大堆 Java 的,别说 Java 了,到今天还一大堆页游后端是 PHP 的。

    PHP 好多版本还停留在 7.0 ,可把我恶心坏了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3224 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 11:56 PVG 19:56 LAX 04:56 JFK 07:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86