
AE2 VM:旧版
基于堆栈的虚拟机合成计算器,适用于1.12.2版本的AE2 Extended Life —— 针对指数级递归请求的毫秒级响应
AE2 VM: Legacy 是 Tao 的 AE2-VM 的非官方分支,原本面向现代 Minecraft(NeoForge 1.21.1),现已移植到 Minecraft 1.12.2,可运行于 Cleanroom 或 Forge + MixinBooter 之上,并基于 AE2 Unofficial Extended Life 运行。原始架构的全部功劳归 Tao 所有;详见下方致谢。
功能简介
AE2 VM 用预编译的样板字节码 + 基于栈的虚拟机 + JIT 打包缓存取代了 Applied Energistics 2 的递归合成树遍历。那些会让原版规划器卡上数分钟的合成请求——深度嵌套、指数级递归的样板——现在可以在毫秒级完成规划(上游基准:约 90 秒 → 约 38 毫秒,约 2,400 倍)。栈溢出在结构上就不可能发生:整条流水线中不存在任何递归。
为何既快又正确
- O(样板 + 边) 的需求传播 —— 在样板图上进行传播,而非逐节点展开;JIT 打包将每个样板捕获一次,并以 O(1) 缩放重放
- 全程使用 BigInteger 运算 —— 10^9 级别的链条、数量为 1 的边界情况,均无溢出
- 库存感知规划 —— 优先消耗网络库存,缺口才进行合成;催化剂反馈循环、耐久工具与转换环均获得精确语义
- 放大合成环 —— 每轮净增长的循环配方(一种自供给循环,其产出大于投入)会被检测出来,通过代数方法求解出材料最少数量,并折叠进单一规划中;副产物中间体、外部输入、以副产物为根的订单以及耦合环链均已覆盖,启动所需流动资金也会被精确报告
- 多样板分配求解器 —— 当某个产物有多个样板时,混合拆分(5 次合成 = 4×A + 1×B)会通过代数方法求解,并编码为虚拟样板;这修复了上游遗留的唯一误报(自 v1.9.6 起存在)
- 处处设防 —— 死循环预剪枝、防过期样板的 JIT 缓存键、对实时库存重新校验的规划记忆化,以及针对环求解器的材料闭包采纳门槛:求解器只可能被拒绝,绝不会让规划变差
- 兼容性 —— 支持 AE2FC 流体样板、AE2CT 显示树、第三方缩放样板包装器,当虚拟机无法处理某个请求时会自动回退到原版规划树
性能
全部 39 个参考套件场景 × 3 种库存模式均受支持(SUPPORTED),零不稳定性,外加 37/37 项边界检查;深度链微基准在 10^9 规模下规划 Fibonacci-32 链条约需 0.6 毫秒(热态中位数)。每次发布后,最新的基准测试结果都会自动发布到 wiki。
快速上手
- 安装 Minecraft 1.12.2,搭配 Cleanroom 加载器(推荐),或 Forge + MixinBooter
- 安装 AE2 Unofficial Extended Life(本模组与所有 1.12.2 版本的 AE2UEL 均兼容)
- 将本模组的 jar 放入 mods/ 目录——完成。
虚拟机会自动接管合成计算,无需任何设置或配置。照常编码 AE2 样板,在终端发起合成请求,虚拟机便会透明地加速计算。若要恢复原版规划,请在 config/ae2_vm_112-common.toml 中将 proxyEnabled=false。
支持的配方:任意深度的合成样板(分子装配机)与处理样板,包括 AE2 附加包中常见的超大型配方。计算在后台线程运行——不会造成服务端主线程卡顿。
关于 Forge 路线:本模组不使用任何 Cleanroom 专属 API,且发布的是 Java 8 字节码,因此预期开箱即用。此路线未纳入我们的自动化测试——欢迎反馈。
需求
| 需求 | 版本 |
|---|---|
| Minecraft | 1.12.2 |
| 加载器 | Cleanroom(推荐)或 Forge + MixinBooter |
| Applied Energistics 2 | AE2 Unofficial Extended Life(任意 1.12.2 版本) |
链接
- 源代码与问题追踪:https://github.com/shinyashen/AE2-VM-1.12
- 完整文档(双语 wiki):https://github.com/shinyashen/AE2-VM-1.12/wiki
- 更新日志:请查看每次发布的 Files 标签页
致谢与许可
本模组是 Tao 的 AE2-VM 的分支——合成虚拟机架构、指令语义与测试基线均源自该项目(LGPL-3.0)。同时感谢 NNYYOONNIIOO 及贡献者(AE2-Quick-Calculation,集成外壳参考),Circulate233(RandomComplement,构建系统参考),moakiee(TB-ThirdParty,仅用于测试的参考规划器),Applied Energistics 2 的 AlgorithmX2 等人,以及 1.12 平台的 AE2UEL 团队。
本移植版与上游相同,以 LGPL-3.0 许可发布。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。