Skip to content

Libreforge 2026.27 · Memory Fix 4

Choose a tag to compare

@heoduling heoduling released this 28 Sep 16:11

Libreforge 2026.27 · Memory Fix 4

本版修复非玩家实体移除时,命中记录清理重复扫描全部受击者的问题;不改配置、不更换 UUID 或并发表。

修复内容

  • 非玩家实体移除只清理自己的受击记录,不再扫描所有攻击者记录。
  • 玩家退出仍保留原来的双角色清理,命中累计、满血重置、重新命中恢复规则不变。
  • 继承 memoryfix-3 的生命周期与空效果状态优化。

已完成验证

使用 mizuki 26.2 9daa83b、eco 2026.28、Java 25.0.3 在隔离服验证:

  • 修复前后各 3 个独立 JVM,每轮 20 项专项检查全部通过。
  • 6 项原有效果启用/禁用/恢复回归通过。
  • 8 线程共 8,000 UUID 清理、20,000 dispatcher 状态清理通过。
  • 5,000 条命中记录时,单次真实盔甲架/掉落物移除:无用内表 remove 调用从 5,000 降到 0。
  • 10,000 条记录的清理方法微基准:临时分配从 320,000 B/次降到 0;不代表插件总内存或整服开销同比下降。

源码中附有 audit/hits-cleanup 复现探针、运行说明和数据边界。探针会自动关闭测试服,禁止安装到生产服。

安装与边界

下载下面的 libreforge-standalone-2026.27-memoryfix-4.jar。完整停服、备份旧版后替换,只保留一个 libreforge JAR,再启动;不要热重载。异常时停服回退 memoryfix-3。

插件描述版本仍为 2026.27,用文件名区分修复批次。最终发布的是此前实际测试过的同一 JAR:以 memoryfix-3 为基础,仅替换干净构建得到的两个目标 class,其他条目逐项保持一致,避免夹带依赖快照引起的三个酿造/熔炼类字节码差异。

尚未覆盖完整生产插件组合、真实玩家客户端联机、生产 OS/JVM/网络环境,也没有测量整个插件的驻留堆内存。四坐标所有权检查不等于四区域同时 tick;并发压力针对 UUID 数据。本地已完成干净构建;项目自带 test 为 NO-SOURCE,专项测试是独立服务端探针,不是 GitHub CI 全覆盖。

SHA-256:

6CCC955F56D995B3C4319600BC82489C8D2CD39F28F3E49BF2BB4AEEC9FB30E0