Repository navigation
Releases: heoduling/eco
Releases · heoduling/eco
Release list
eco 2026.28 optimized.3 — Folia 性能优化
eco 2026.28 optimized.3
维护分支:feature/mcmmo-block-tracker-migration
上游:https://github.com/33444dirge/eco
基线提交:ed16908050454b850a68c8993d4dcf33ad19182b
本次提交:dba1e0fef5426ef3972861585e8dfde596609c97
本版减少物品显示过程中的重复对象分配,包含之前验证的全部三类 eco 优化。
修改内容
- 保留物品包装创建时的独立 PDC 快照,需要时才构造 PDC 容器,保持交错包装与写回行为。
- 对可以证明不含 eco 临时显示标记的原生普通 Lore,跳过一次不必要的文字转换;复杂组件继续使用原流程。
- 显示还原复用物品包装,getLore 减少中间列表。
- 背包显示使用逐槽变化标记替代临时集合,并减少一次列表复制;保持显示顺序、缓存寿命及窗口切换规则。
验证与性能范围
- 使用 Shiroha/Folia 26.2-DEV-28fe077、Java 25,旧版与最终版固定相同依赖及配置。
- clean check shadowJar 通过;发布前再次执行 check 通过,7 个仓库测试无失败、无跳过。
- 352 组 Bukkit/CraftItemStack、Lore、PDC 和 finalized 输出对照一致;每轮 2158 项检查通过。
- PDC/API 68 项回归通过;四个独立区域、四名协议客户端、50 种窗口变化、实际点击取出/放回通过。
- 每项性能基准各版本 3 个独立进程,每进程预热后测 7 轮,使用中位数比较。
- 原生普通 Lore 还原的临时分配减少约 47.5%~47.9%;46 格背包缓存命中减少约 15.6%~57.6%。缓存命中分配基准对双方延长了清理间隔,真实客户端回归恢复原配置。
- 不同 PDC 大小的附魔查找临时分配减少约 1.0%~50.9%;直接 PDC 读写样本增加 8~24 B/次。
- 已登录玩家的两种装备显示耗时中位数分别降低 2.8% 和 9.3%;2.8% 小于运行波动,不能认定稳定提速。区域线程为虚拟线程,逐线程分配计数不可用,因此该组只报告耗时。
- 以上均为局部本机测试,不是整服 TPS、常驻内存或最大在线人数的提升。没有生产服务器 A/B Spark,也未覆盖所有占位符、付费重铸交易、旧核心或满服长期运行。
安装与回退
保留现有配置,正常停服后备份并替换 eco JAR,确保 plugins 中只有一个 eco。本次不需要迁移物品或清理区块数据。回退时恢复备份 JAR 并正常重启。没有操作生产服务器。
产物
eco-2026.28-optimized-3.jar
SHA-256: 641A1544A88F87546A7D072EE367C8C14B254CB172F805D7B3543780D47B6A16
eco-2026.28-optimized-3-source.zip 包含本次提交的实际源码及构建文件。
插件声明版本保持 2026.28;发布标签为 2026.28-optimized.3。
eco 2026.28 memoryfix-1
修复箭实体移除后 shot-from Metadata 未清理的问题。
- 已合并到 master:64c5b44309ba58a739f478b9cb97d42958dedba6
- 已测试源码提交:f769c8e660831e28dd356fe3a068201dcebbef8d
- JAR SHA-256:10E35D56931F49DD1D6AEA5D24E2C1DE6EF7119E4D696B6F136704947F6BFEA3
- 产物来源:生产 eco-2026.28-all.jar 的最小类替换件;修改类已用 JDK 21 与准确 API 独立编译
- 整仓 Gradle clean build 被上游已移除的可选编译依赖 IridiumSkyblock 4.1.2、ExcellentShop Core 4.22.0 阻断,因此不宣称整仓构建通过
- Shiroha 26.2:五轮同服压力,每轮 1000 个箭状态销毁后 shot-from 与 eco owning-plugin Metadata 均为 0
- Bukkit Metadata 生命周期:PASS;EntityRemoveEvent 使用同一 eco owning plugin 清理
部署要求:完整停服后替换;不要热加载。