gpt4 book ai didi

java - 长时间 GC 在应用程序中暂停

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:34 31 4
gpt4 key购买 nike

我目前运行的应用程序需要最大堆大小为 16GB。

目前我使用以下标志来处理垃圾回收。

-XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=50, -XX\:+DisableExplicitGC, -XX\:+PrintGCDateStamps, -XX\:+PrintGCDetails, -Xloggc\:/home/user/logs/gc.log

但是,我注意到在某些垃圾回收过程中,应用程序会锁定几秒钟然后继续运行 - 这是完全不能接受的,因为它是游戏服务器。

可以从我的垃圾收集日志中找到一份文件 here .

对于我应该更改哪些内容以减少这些长时间停顿的任何建议,我们将不胜感激。

最佳答案

Any advice on what I should change in order to reduce these long pauses would be greatly appreciated.

很有可能 CMS GC 跟不上系统产生的垃圾量。但 GC 必须执行的工作实际上更密切与您的系统保留的非垃圾量相关。

所以...

  • 尽量减少应用程序的实际内存使用量;例如通过不缓存那么多东西,或者减少你的“世界”的大小。
  • 尝试降低您的应用程序产生垃圾的速度。
  • 升级到具有更多内核的机器,以便在必要时有更多内核可用于运行并行 GC 线程。

致神秘主义者:

是的,事后看来,用 C++ 实现服务器可能更好。然而,我们对“游戏”一无所知。如果涉及复杂的世界模型,复杂的异构数据结构,那么用C++实现可能意味着你把“GC暂停”问题换成了服务器一直因为问题崩溃的问题及其管理数据结构的方式。

关于java - 长时间 GC 在应用程序中暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15696585/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com