• 注册
  • 其他&工具 其他&工具 关注:11553 内容:353
    50金币

    [v2.6专供]官方在2.5和2.6的更新导致服务器内存暴涨。与AI合作构建了一个内存泄漏修复

  • 查看作者
  • 打赏作者
  • 其他&工具
  • 小版主
    Lv.6
    心有灵犀
  • 原创

  • FixMemoryLeak – 七日杀服务器内存泄漏修复


    这个 Mod 解决什么问题?

    服务器长时间运行后内存持续增长,最终导致卡顿甚至崩溃。根源是游戏代码中 HashSetLong 数据结构存在设计缺陷:

    • 内部数组只增不减 — 玩家探索新区域时,HashSetLong
       内部数组扩容;离开后元素被移除,但数组大小永远不收缩

    • TrimExcess() 方法是反向 Bug — 原版代码调用 TrimExcess()
       不仅不收缩内存,反而会让数组大小翻倍

    // 原版代码 (有 Bug)  public void TrimExcess()
      {      Resize();  // Resize() 内部是 table.Length <<
      1,翻倍!
      }

    修复了什么?

    修复项 说明
    HashSetLong.TrimExcess() 修复为真正收缩内部数组,重新哈希活跃条目到更小的数组中
    定期自动回收 按配置间隔自动对所有 HashSetLong
     实例执行收缩,无需手动干预
    手动回收命令 控制台输入 fixmemory 立即执行一次清理

    回收的是什么内存?

    以一个玩家的 chunksLoaded 为例:

    数组 元素大小 收缩前 收缩后 节省
    table[] (哈希桶) 4 bytes 1237 个 109 个 4.4 KB
    links[] (链表节点) 8 bytes 1237 个 109 个 8.9 KB
    slots[] (存储值) 8 bytes 1237 个 109 个 8.9 KB
    合计 24.2 KB 2.1 KB 22.1 KB / 实例

    服务器中 HashSetLong 实例数量(8 人在线):

    • ChunkObserver 相关:每玩家约 34 个实例 × 8 人 = 272 个

    • WorldChunkCache / ChunkCluster:大型实例,峰值可达数千甚至上万大小

    • PrefabInstance.occupiedChunks:每个预制件 1 个


    配置文件

    配置文件位于:Mods/FixMemoryLeak/Config.xml,修改后重启服务器生效。

    <EnableAutoCleanup>true</EnableAutoCleanup>  <CleanupIntervalMinutes>30</CleanupIntervalMinutes>

    使用方式

    1. FixMemoryLeak
       文件夹放入服务器 Mods
       目录

    2. 重启服务器

    3. 日志中看到 [FixMemoryLeak]
       Loaded.
      表示加载成功

    4. 定期清理会自动运行,也可在控制台输入 fixmemory 手动触发


    日志示例

    [FixMemoryLeak] Loaded. AutoCleanup=True, Interval=30min  [FixMemoryLeak] Config loaded: EnableAutoCleanup=True, Interval=30min  ...30分钟后...  [FixMemoryLeak] Observer.chunksLoaded: 1237 -> 109 (count=52)  [FixMemoryLeak] Observer.chunksAround[3]: 251 -> 37 (count=12)  [FixMemoryLeak] Auto cleanup done. Trimmed 5 collections.

    兼容性

    • 纯服务端 Mod,客户端无需安装

    • 通过 Harmony 补丁运行,不修改游戏文件

    隐藏内容需要付费才可以看见

    马上购买

    "点赞是美意,打赏是鼓励"

    MOD板块严查恶意、辱骂、讽刺等评论,如发现此类评论轻则小黑屋,重则永久封禁!

    如果发现帖子违规,用户可以点击帖子标题旁的向下箭头,选择举报内容

    涉及版权纠纷请确保你有所属版权,否则中文网有权不作处理

    请登录之后再进行评论

    登录
    • 大版主
    • 小版主
  • 英雄大人
    英雄大人
    白天在工作,晚上在睡觉,有事可以留言,不一定能及时回复!
  • yichen
    yichen
    Mod闲聊群762251937
  • 林小天
    林小天
    我还活着买断制版本,私聊我qq3807190901请标明来意
  • 雾凇
    雾凇
    ifdian.net/a/jrzpz/plan
  • 摸鱼摸鱼摸
    摸鱼摸鱼摸
    交流吹水群967780922
  • 银河
    银河
    CSOL大灾变欢迎你的到来。QQ群:967780922
  • 安安
    安安
    大背包、常显、叠加、除草树,唯一作者QQ383125283
  • 最强打野贝爷
    最强打野贝爷
    上班!上班!上班!
  • Cure_805
    Cure_805
    晚上在睡觉,白天在工作,不一定能及时回复,有事可以留言!
  • happy!
    happy!
    住院中
  • 妮可Neko
    妮可Neko
    无聊写些小玩意儿
  • 赞助广告位

  • 点击展示图片即可一键加入QQ群
    赞助广告:100R/月 目前空缺广告位:0

    分享网站

  • 繁体中文
  • 任务
  • 动态
  • 到底部
  • 帖子间隔 侧栏位置: