跳到正文

EMIAccelerator

作者:Chatterjay

Caches the EMI item stack list to disk and defers search index building to a background thread, drastically reducing EMI reload time.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

EMI Accelerator

Caches the EMI item stack list to disk and defers search index building to a background thread, drastically reducing EMI reload time.

Overview

Every time you join a world or reload resources, EMI rebuilds the entire item stack list and search index. For modpacks with a large number of mods, this process can take tens of seconds, and the game UI freezes completely while the search index is being built.

EMI Accelerator solves this problem with the following optimizations:

  • Stack Caching: Serializes EmiStackList.stacks to JSON and caches it to disk on the first load. Subsequent game launches skip the full reload (around 130ms compared to ~40 seconds).
  • Deferred Search: Defers EmiSearch.bake() to a background thread, eliminating roughly 10 seconds of UI blocking.
  • Auto Refresh: Automatically updates EMI search results once background indexing finishes, with no manual re-input required.

Usage

Command Description
/emiacc status View cache status, file size, and hit count
/emiacc clear Delete the cache (rebuilds on next launch)
/emiacc reload Trigger an EMI reload manually
/emiacc reload --force Clear cache and force a full EMI reload

Configuration

Config file path: config/emi-accelerator/emi-accelerator.properties

Option Type Default Description
cacheEnabled boolean true Enable item stack caching
autoClearOnModChange boolean true Automatically clear cache when mod list changes
maxFileSizeMb int 100 Maximum cache file size (MB)
diagnosticsEnabled boolean false Write stage timings to reload-timings.json
deferredSearchEnabled boolean true Enable background deferred search indexing

How It Works

  1. EMI tag sync triggers → EmiReloadManager.reload() → ReloadWorker.run() starts
  2. Check if the cache exists and is valid (SHA-256 mod list hash verification)
  3. Cache hit: Deserialize stack list directly → skip full reload → build search index in background → complete
  4. Cache miss: Proceed with normal EMI reload → asynchronously write cache after completion
  5. Automatically refresh the EMI UI after search build finishes, showing [EMI Accelerator] Search Ready

Dependencies

Mod Version Required
EMI 1.1.22+ Yes
  • Loader: NeoForge 21.1.228+
  • Side: Client-only
  • Environment: Minecraft 1.21.1

Build

./gradlew build

License

GNU AGPL 3.0

常见问题

EMIAccelerator 支持哪些 Minecraft 版本?

EMIAccelerator 支持 Minecraft Java 版 1.20.1–1.21.1,共 2 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

EMIAccelerator 怎么安装?

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

评论

登录后评论和评分

Chatterjay 的其他作品

查看全部 →