spark

[!INFO] Git Commit: 7e1fe42 | Updated: 2026-10-02

spark 是 lucko 编写、现由 GTNewHorizons 维护的性能分析工具(profiler)。它的定位是纯诊断模组:在本仓中 0 方块 / 0 物品 / 0 实体 / 0 配方 / 0 GUI(证据:grep -rn 'registerBlock\|registerItem\|GameRegistry\.register' --include=*.java 全仓 0 命中;对 IGuiHandler / GuiScreen / RenderGameOverlayEvent 同样 0 命中)。它不进入合成表、不影响游戏进程、不含任何世界内容 —— 全部功能是 2 条命令(服务端 /spark、客户端 /sparkc)、10 个子命令、1 个 config.json 和 1 个供其他模组调用的 Java API。

分析结果不落在游戏内,而是以可点击 URL 交给外部 Web 查看器 https://spark.lucko.me/ 渲染;本地也能存成 .sparkprofile / .sparkheap / .hprof 文件。

Forge 1.7.10 适配层

本分类针对的是 spark-forge1710 模块,不是上游的现代 Forge 模组。modid 从源码读取为 spark(Forge1710SparkMod.java:37),mcmod.info 中同为 "modid": "spark",无连字符。

版本门禁:spark-forge1710/build.gradle:24 为 version = "1.7.10-10.13.4.1614-1.7.10",配合 ForgeGradle 1.2 与 mappings = 'stable_12',源码兼容 Java 8。

跨版本隔离:settings.gradle 只 include 了 spark-api、spark-common、spark-forge1710 三个模块。仓内另有 spark-fabric、spark-forge、spark-bukkit、spark-sponge7/8、spark-velocity4 等 11 个其他平台模块不参与构建,已排除在本条目之外。它们的内容(如现代 Forge 模块所用的 CommandSourceStack、sparkc / sparkclient 客户端别名)不收录。

@Mod 注解为 acceptableRemoteVersions = "*"(Forge1710SparkMod.java:40),即不限制远端版本。

1.7.10 上的两处已知问题

均为本 fork 适配层的实际代码状态,非推测:

  • /spark ping 恒不可用:Forge1710PlayerPingProvider 全仓仅 2 处引用(都在它自己的文件里),从未被 createPlayerPingProvider() 接线;其余 11 个平台模块都接线了,1.7.10 是唯一遗漏。详见 ping。
  • Forge1710SparkPlugin.getCommandName() 无限递归:基类实现自我调用,但两个子类均已覆写,当前不会触发。详见 /spark。

指令列表

采样器列表

  • 采样引擎 - async-profiler 与内置 Java 引擎,含 5 组平台支持矩阵与失败自动降级
  • 后台采样器 - 服务端默认开启的常驻采样器及其 5 个配置项
  • 线程分组与导出 - ThreadGrouper / ThreadDumper 取值表与 1.7.10 默认线程

报告列表

设置列表

API 列表

  • Spark API - SparkProvider.get() 单例门面,5 个统计方法供其他模组调用