V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lcingOnTheCake
V2EX  ›  程序员

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

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

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

    PHP 好多版本还停留在 7.0 ,可把我恶心坏了
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1063 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.