TheFastLaunch v2.0 [Fabric 1.20.1]
Curse Maven Snippet
What's new
TheFastLaunch v2.0 - Major Architecture & Deep Boot Overhaul
Minecraft 起動最適化 Mod「TheFastLaunch (TFL)」のメジャーアップデート v2.0 をリリースいたします。 本バージョンでは、先行する最適化 Mod**「Slothfullllll」(shuttheirprayer 氏開発)**の卓越したアーキテクチャ・最適化技術を参考とし、コアブートストラップ層からアセット解決層にわたる包括的な高速化パイプラインを統合いたしました。
🎖️ Special Thanks & Credits (謝辞・クレジット)
本リリースの新機能 1〜4 は、shuttheirprayer 氏が開発されたオープンソース Mod Slothfullllll の技術・知見を深く参考にさせていただき、TheFastLaunch のマルチローダーおよび多層安全フォールバックアーキテクチャへ適合させて実装いたしました。 素晴らしい最適化アイデアと先駆的なコードを公開されている shuttheirprayer 氏に心より深く感謝申し上げます。
- 参考元 Mod: Slothfullllll
- 制作者: shuttheirprayer 氏
🚀 主な新機能・最適化詳細 (Slothfullllll 統合機能)
1. ⚡ JPMS Resolver 推移的閉包ループ高速化 (ModuleGraphFix)
- 病理と課題: Java 9+ の Java プラットフォーム・モジュール・システム(JPMS)の中核クラスである
java.lang.module.Resolver#makeGraphにおいて、Automatic Module(通常の Mod Jar)が全モジュールを読む仕様により、計算量 \(O(N^2)\) の二重探索ループが発生。大規模 Modpack(390+ Mod)環境において JVM 起動直後に数秒〜十数秒に及ぶ CPU 100% フリーズと数百 MB の短命オブジェクト GC が発生していました。 - 最適化アプローチ:
- 動的 Java Agent(
FastLaunchAgent)のインメモリ一時 JAR ロードによりInstrumentationを取得。 - ブートストラップクラスローダー上に
FastLaunchResolverHook(java.lang.module.FastLaunchResolverHook)を動的定義。 - ASM バイトコードパッチ(
retransformClasses)により、Resolver#makeGraph内の推移的閉包(Transitive Closure)計算における Automatic Module 走査をバイパス。 - 万が一の不整合やカスタム JVM 環境に備え、JVM 引数
-Dthefastlaunch.disableModuleGraphFix=trueおよび例外キャッチによる完全なバニラ透過フォールバックを完備。
- 動的 Java Agent(
2. ⚡ リソースパック探索 namespace 直引き最適化 (DelegatingPackResourcesMixin)
- 病理と課題: Forge の
DelegatingPackResources.listResourcesでは、リソース探索時に 400+ 個の登録済み全 Mod パックをループして線形走査していました。 - 最適化アプローチ: リクエストされた namespace(
namespacesAssets/namespacesData)のみに絞り込んで直引き走査する \(O(1)\) 解決に置換。無関係な Mod パックへの不要な走査を完全に根絶しました。
3. ⚡ Mixin 設定ファイル探索の O(1) 事前インデックス化 (RootResourceIndex / ResourceMixinService)
- 病理と課題: 各 Mod の Mixin 設定(
.json)解決時に、SpongePowered MixinService がクラスパス全 Mod を走査してストリームを開くため、Mod 数の二乗に比例した I/O オーバーヘッドが生じていました。 - 最適化アプローチ: 起動最初期にクラスローダーの
resolvedRootsを走査して全 Jar ルート直下の.jsonを事前インデックス化。IMixinService.getResourceAsStreamのリニア全探索をスキップして O(1) でストリームを即座に返却します。
4. ⚡ 自 Mod Jar 直引きユーティリティ & 個別 Mod 最適化 (FastLaunchModResourceHelper)
- 病理と課題: Ice and Fire、NuclearCraft、Prism 等の個別 Mod が
ClassLoader.getResourceAsStreamを用いて自 Mod 内のアセット(モデル定義やテクスチャ等)を探索する際、クラスパス全体の走査が発生していました。 - 最適化アプローチ:
LoadingModList経由で自 Mod Jar の物理パスを特定し、自 Jar から直接ストリームを取得する共通ヘルパーを構築。個別 Mod の Mixin と連携して不要走査をバイパスしました。
🛡️ その他の基盤改善・クリーンアップ
- Win32 Process Ghosting Blocker の完全一本化:
FastLaunchForgeMod側の重複 JNA 反射実装を削除し、ModLauncher 最上位のFastLaunchTransformationService.disableWindowsGhosting()へ統合・一本化。起動時の「応答なし(白画面)」を 0% CPU 負荷で物理遮断。
- MBD2 超高速並列 NBT ローダー:
- 最大 1MB
BufferedInputStream+ マジックヘッダ(GZIP 自動判別)により、巨大 NBT 定義ファイルのロード実時間を 82.5 秒から 2.4 秒へ激減。
- 最大 1MB
- マルチローダー正式対応:
- Forge 1.20.1 に加え、Fabric 1.20.1、Fabric 1.21.1、NeoForge 1.21.1 の全 4 環境でビルドおよび自動配備パイプラインを確立。
- コードベースの徹底クリーンアップ:
- デッドコード・不要なドラフト仕様書をアーカイブし、システム全体を v2.0 として完全刷新。
This mod has no additional files

