GerBeria 发表于 2026-10-26 01:39:07

[0.98-RC8] StarsectorParallel —— 远行星号逻辑侧多线程并行化



# StarsectorParallel 0.1.0 —— 远行星号逻辑侧多线程并行化

> 发布物:`_Release/v0.1.0/archive/StarsectorParallel-0.1.0.zip`
> 作者:GerBetria 许可:MIT(自身代码)

---

## 一句话

把远行星号**逻辑侧**可并行的引擎热点(战斗 AI 推进、市场经济推进、舰队任务分配等)
路由到异构感知线程池,并按 CPU 拓扑自动分派到性能核 / 能效核。
**只管逻辑,不动渲染、物理、存档序列化、传感。**

---

## ⚠️ 首先:它依赖 MixinLib

**StarsectorParallel 是 MixinLib 的 mixin mod,不是独立 agent。
必须先安装 MixinLib 并完成其 `-javaagent` 注入,否则本 mod 不会被加载。**

- 推荐直接用 **MixinFR**(MixinLib + Fast Rendering 整合包),装好后本 mod 开箱可用;
- 也可单独装 MixinLib;
- **两份 MixinLib 不能同时启用**(即装了 MixinFR 就不要再单独装 MixinLib)。

mod 列表里请把 **StarsectorParallel 排在 MixinLib(或 MixinFR)之后**。

---

## 安装

1. 解压 `StarsectorParallel-0.1.0.zip`;
2. 把其中的 `StarsectorParallel/` 文件夹整个放进游戏目录的 `mods/` 下;

   ```
   starsector/
   └── mods/
       ├── MixinFR/               ← 先装好这个
       └── StarsectorParallel/      ← 本 mod
   ```

3. 启动器里勾选 **StarsectorParallel**(排在 MixinLib 之后);
4. 正常启动。

**不需要** install.bat、**不需要**改 vmparams(agent 槽由 MixinLib 独占)。
文件夹名不要改。卸载直接删文件夹。

---

## 请先看这段:收益预期管理(重要)

本 mod 优化的是 **CPU 侧的逻辑热点**。它**不改变游戏单线程模拟的帧率上限**,
也**不优化渲染、显存或磁盘 IO**。

我们自己的 JFR 实测(95 个 mod 的重载环境)显示:并行池在整段启动与运行中的
CPU 占用仅约 **1.7%**——也就是说在**大量场景下你可能感觉不到变化**。

什么样的环境才可能受益:

- CPU 侧真的有热点(大规模战斗、市场经济推进繁重、大量舰队 AI);
- 你的瓶颈**不是** GPU / 显存 / 磁盘 IO;
- 多 mod、大内存堆环境(并行空间更大)。

**如果你的瓶颈在 GPU 或 IO,装它可能毫无体感,甚至因为线程调度而略微变差。**
这是诚实的预期说明——先装了试试,没效果就卸载,不需要客气。

---

## 运行时开关

在 `vmparams` 加 `-D` 参数,改完重启游戏。**全部默认开启。**

| 参数 | 作用 |
|---|---|
| `-Dsparallel.master=false` | **总开关**:完全退回原版行为(排查问题先用它) |
| `-Dsparallel.heterogeneous=false` | 关异构分池(强制同构单池) |
| `-Dsparallel.placement=false` | 关线程放置(不做 P/E 核偏置) |
| `-Dsparallel.c1=false` | 关 C1:战斗 AI 批量并行 |
| `-Dsparallel.c3=false` | 关 C3-sub/E1:市场推进并行 |
| `-Dsparallel.g3=false` | 关 G3:舰队任务分配 |
| `-Dsparallel.e5=false` / `-Dsparallel.e7=false` | 关 E5 / E7 缓存复用 |

排查顺序:先 `master=false` 确认是不是本 mod 引起的,再逐项关到具体子系统。

---

## 兼容矩阵(如实写)

| 维度 | 声明 |
|---|---|
| 游戏版本 | **0.98a-RC8**;游戏更新后混淆映射变化会导致本 mod 失效(属预期) |
| 汉化版本 | 传统汉化版(ZYT)与启动优化版(YHCS)**均已实测**;英文原版按同一套字节码锚点推断兼容,欢迎反馈 |
| Java | 无需单独安装,用游戏自带 JRE 17 |
| 其他 Mixin mod | 可用;冲突只在 `mixinlib.log` 报 WARN,不阻断 |
| MTPerf | 共存时其引擎字节码补丁在 MixinLib 双 JVM 下静默跳过;其脚本级功能不受影响 |
| GraphicsLib | Intel 核显上 `Bloom is not supported; disabling` 与本 mod 无关 |
| 大规模战斗 | **不改变单线程模拟的帧率上限** |

---

## 已知问题

- 收益因环境差异极大(见上面"收益预期管理")。
- **第三方 mod 默认不并行**:未注册为线程安全的 mod 逻辑一律回主线程串行执行。
这是保守设计,保证不会因为并发而损坏存档,不是 bug。
- 汉化包若改动了目标类,对应注入点会**优雅跳过**(退回原版路径,不崩溃)。
- 游戏版本更新后可能整体失效(混淆映射变化)。

---

## 报告问题请附三件套

1. `starsector-core/mixinlib.log`
2. `starsector-core/starsector.log`
3. `vmparams`

外加:游戏版本、汉化版本、启用 mod 列表、CPU 型号、以及**你的瓶颈大概在哪**
(任务管理器看 CPU 还是 GPU 先满)。

---

## 源码与许可

- **完整源码就在压缩包内**:`StarsectorParallel-0.1.0-source/` 目录。
构建方法见其中的 `BUILD.md`。这是本发布方式与常见 mod 最大的不同,主动说明以省疑问。
(MIT 许可不强制提供源码,这是自愿的。)
- 自身代码:**MIT**。
- 第三方:JNA 5.14.0(Apache-2.0 或 LGPL-2.1,本项目选用 Apache-2.0),
见包内 `THIRD-PARTY-NOTICES/`。
- 运行时依赖 **MixinLib(GPL-3.0-only)** —— 本包**不含** MixinLib 任何文件,
请从 MixinLib 项目获取。
- **本项目为独立 clean-room 实现**,未包含、未复制社区上游多线程优化项目
(MT 系列,作者 StarCore)的任何源代码;仅吸收其方法论与热点地图,
并在此致谢。详见包内 `NOTICE`。

**署名**:GerBetria。这是第三方作品,**不是** MixinLib / Fast Rendering 作者的官方发布。

---

## 更新日志摘要(0.1.0)

首个对外版本。四子项目架构(依赖单向 injector → core → async → runtime):

- **parallel-runtime**:跨平台多线程运行时(无帧语义,可独立分发)——拓扑发现、
线程放置、通用工作池。
- **parallel-async**:通用异步组合层(无帧语义,可独立分发)——`Async` 门面、
挂钟调度、有界 IO 卸载、线程归约。
- **parallel-core**:帧语义层——门面、帧屏障、帧调度、缓存、遥测。
- **starsector-injector**:远行星号逻辑注入 mod(MixinLib 形态)。

已接线的热点:C1 战斗 AI 批量并行、C3-sub/E1 市场推进并行、G3 舰队任务分配、
E5/E6/E7 缓存与字符串复用。全维度同构无损降级(关闭 = 等价原版)。

详见包内 `CHANGELOG.md`。


墨鱼不摸鱼 发表于 2026-10-26 03:45:43

{:tieba_36:}赞美多线程,超市alex{:tieba_34:}

player123 发表于 2026-10-26 05:34:16

牛逼,没准对我这大语言模型接入的模组也有用,频繁解析上下行json对性能确实有影响()

叠韵双声 发表于 2026-10-26 09:02:50

神中神

相位自走洗衣机 发表于 2026-10-26 09:34:26

你说你用AI搓了个什么mod?{:5_133:}

狗头菌丝 发表于 2026-10-26 11:31:58

等等,你说什么?{:5_133:}

起个名字好难 发表于 2026-10-26 11:55:46

请问这个mod可以实现在生涯大后期存档的流畅性吗?

Sarena777 发表于 2026-10-26 12:48:12

嗯......VRAM Optimizer+FR+java28+本模组,感觉电脑要螺旋上天了

秦涟辞 发表于 2026-10-26 13:58:39

神了{:tieba_43:}

DIO娜 发表于 2026-10-26 15:27:06

有小白鼠试试效果吗

临风雨 发表于 2026-10-26 15:34:43

逆天

GerBeria 发表于 2026-10-27 02:06:02

相位自走洗衣机 发表于 2026-10-26 09:34
你说你用AI搓了个什么mod?

一名刀客塔是第一个用Ai写多线程的人,我这提到的mt系列就是他的成果

GerBeria 发表于 2026-10-27 02:07:05

DIO娜 发表于 2026-10-26 15:27
有小白鼠试试效果吗

应该用不到小白鼠了吧,我自己已经80+mod测过十几遍了。

GerBeria 发表于 2026-10-27 02:08:42

Sarena777 发表于 2026-10-26 12:48
嗯......VRAM Optimizer+FR+java28+本模组,感觉电脑要螺旋上天了

感兴趣的话可以试一试过几天的mixinfr-opt

DIO娜 发表于 2026-10-27 12:46:39

GerBeria 发表于 2026-10-27 02:07
应该用不到小白鼠了吧,我自己已经80+mod测过十几遍了。

我的环境

160+MOD

64G内存,14700K,4080

java28,16G内存分配

我最近被另一个MOD折腾了很久,暂时没经历测试,还是观望一会把,主要是你这里说的



什么样的环境才可能受益:



CPU 侧真的有热点(大规模战斗、市场经济推进繁重、大量舰队 AI);
你的瓶颈不是 GPU / 显存 / 磁盘 IO;
多 mod、大内存堆环境(并行空间更大)。


如果你的瓶颈在 GPU 或 IO,装它可能毫无体感,甚至因为线程调度而略微变差。 这是诚实的预期说明——先装了试试,没效果就卸载,不需要客气。
页: [1]
查看完整版本: [0.98-RC8] StarsectorParallel —— 远行星号逻辑侧多线程并行化