修复了部分使用 MCreator 制作的 Forge 1.20.1 模组中存在的大内存分配错误。首次启动时会检测模组,需要重启游戏才能使修复生效。对于使用 Forge 1.20.1 生成器版本 >=1.0(2025年10月28日)制作的模组,此修复模组不再需要。即使检测到这些模组,此模组仍不应与它们产生冲突,但也不会对它们产生影响。
简要说明
.minecraft/config 目录下的 mcreatormemfix.json 文件,并可以选择通过在该 JSON 对象中添加 locked 键并将其设置为 true 来锁定该文件。这可以防止模组列表更改时模组重新生成其配置。接下来是一些简单的技术说明。内容并不复杂。
每当 MCreator 模组访问其玩家变量时,它都会创建一个新对象作为默认值,然后访问存储的对象。如果没有存储的对象,则使用默认对象。如果存在存储的对象,那么默认对象就被无谓地创建了。
问题在哪里?许多 MCreator 模组会频繁访问玩家变量。这导致了大量不必要的内存分配。这些分配可能在游戏刻(ticks)和帧(frames)内发生很多很多次,从而导致每秒产生大量的内存分配。
此模组只是阻止在每次 MCreator 模组想要访问其玩家变量时都创建那个对象。它为每个模组存储一个默认的变量对象,当我们访问它时,我们回退到存储的默认值,而不是每次都创建一个新对象。很简单。
安装此模组后,功能上应该没有任何差异。
某些 MCreator 模组在垃圾回收器工作之前,可能会分配高达约 300MB 的垃圾内存。内存分配是一个缓慢的操作,分配如此多的内存而没有收益是不必要的。使用此模组后,MCreator 模组在玩家变量方面的内存分配应该降至几乎为零。这可能会减少卡顿、降低平均/峰值内存使用量,甚至带来小幅度的 FPS 提升。实际效果因人而异。
我并没有进行太多测试,但这个模组应该不会引起太多问题。它几乎是免费的,几乎没有缺点。
不确定。只要没有其他模组修改此模组所修改的相同内容(显然,兼容性通常就是这样),应该就没问题。
这个模组有点侵入性,它修改了原模组的许多类,但应该是以一种相对干净的方式进行的。
任何不明确修改 MCreator 模组的模组应该始终 100% 兼容。除非我搞砸了什么。
免责声明:从未有人问过我以下任何一个问题。
> 如何让它对特定的 MCreator 模组生效?
运行游戏后,将在配置目录 .minecraft/config 中创建一个文件。创建此文件后,您应该重启游戏以确保检测到的 MCreator 模组被修改。添加新的 MCreator 模组后,您应该删除此文件,以便模组重新扫描您的模组。模组扫描 MCreator 模组时会记录一条消息。
整合包开发者可以安全地重新分发此配置文件,防止最终用户不得不重启游戏。他们也可以通过添加 locked 键并将其在配置中设置为 true 来锁定此文件。这并不是必需的,但它可以阻止模组搜索新的待修改目标,从而在启动时节省几毫秒。
> 出错了。我该如何修复?
首先,尝试删除配置文件并重新运行游戏一两次。如果这不起作用,请在此处提交问题:https://github.com/Overcontrol1/MCreatorMemFix/issues。
> 你看起来真的很酷。我们能做朋友吗?
不。也许吧。
> 我可以在整合包中使用这个吗?
可以,它就是为此设计的。
友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:72,306 | 历史访问人次:160,131
今日访问人数:2,925 | 今日访问人次:3,294
昨日访问人数:20,761 | 昨日访问人次:24,774
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6