跳到正文

Apoli Stream Leak

作者:Jonathing

覆盖了 Apoli 在每个游戏刻都会执行的昂贵 Stream 操作和内存密集型操作。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

Apoli Stream Leak

Apoli Stream Leak 是一个适用于 Forge 的核心模组,旨在修复 Apoli (Forge) 中本可避免的性能问题。

用途

Apoli 是一个第三方重新分发的前置库,原本内置于 Origins (Forge) 中,模组开发者可以单独使用它,无需依赖 Origins 的其余部分。Apoli 的代码中有多处会在客户端和服务器端每个游戏刻都会调用的方法,而这些方法会创建 Stream。创建这些 Stream 及其相关的 lambda 对象会明显降低性能,在有多名玩家连接的服务器上尤为突出。

Apoli Stream Leak 将这些 Stream 的创建操作替换为传统的 for 循环和其他替代实现,以避免过多的内存占用。效果立竿见影。

性能差异

以下是包含 Apoli 的 Resurvival 整合包的 Spark 性能分析:
https://spark.lucko.me/Qa87epEMA8

以下是同一实例加入 Apoli Stream Leak 后的 Spark 性能分析:
https://spark.lucko.me/vQ1lXBRg7w

在 Spark 自带的模组树中,Apoli 与 Apoli Stream Leak 搭配使用后,游戏刻耗时减少了 4%。其他模组(例如 Mining Master)也会因使用 Apoli 直接接入的事件而受益,耗时减少约 1% 或更多。

欢迎其他解决方案

创建 Apoli Stream Leak 的原因是 Apoli (Forge) 没有开放源代码或可获取源代码的代码仓库(请勿与原版 Apoli 模组混淆)。我个人愿意将这个核心模组所做的改动贡献给 Apoli 本身(最好是 Forge 版本,因为这是我的使用场景)。你可以通过 jonathing.me 联系我。

常见问题

Apoli Stream Leak 支持哪些 Minecraft 版本?

Apoli Stream Leak 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Apoli Stream Leak 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Jonathing 的其他作品

查看全部 →