48 lines
2.2 KiB
Plaintext
48 lines
2.2 KiB
Plaintext
Horizon server @PACK_VERSION@ — Minecraft 26.3, Fabric 0.19.5, Java 25
|
|
|
|
Install Python 3.10+ and native Java 25. Extract this ZIP and open a terminal here.
|
|
|
|
python3 tools/server.py prepare
|
|
|
|
Read Minecraft's EULA at https://www.minecraft.net/eula. Create/edit
|
|
.local/server/optimized/eula.txt to contain eula=true if you agree, then:
|
|
|
|
python3 tools/server.py run --heap 4G
|
|
|
|
Windows: use python in place of python3 if needed. Server downloads and assets
|
|
stay in .local. No game code, third-party mod JARs or credentials are bundled.
|
|
Lithium and FerriteCore optimize the original simulation/storage; tick rate and
|
|
vanilla gameplay rules are retained. No Paper-style gameplay configuration.
|
|
|
|
From the server console:
|
|
horizonserver bench populated-50 120
|
|
horizonserver stop
|
|
|
|
From an operator's in-game chat, prefix each command with /. JSON/CSV reports
|
|
appear in the instance's horizon-benchmarks directory. They record actual peak
|
|
players, tick execution durations, observed tick count per elapsed second,
|
|
JVM heap/GC and platform metadata. meanRate is tick execution capacity, NOT TPS.
|
|
An idle server does not establish performance for 50 active players.
|
|
|
|
Baseline:
|
|
python3 tools/server.py prepare --baseline
|
|
python3 tools/server.py run --baseline --heap 4G
|
|
|
|
Use separate world copies with the same seed, settings, Java and maximum heap.
|
|
Only run one at a time unless you give them distinct ports/resources. When
|
|
benchmarking 50 players include normal exploration, entity farms, redstone and
|
|
chunk loading; repeat with 1, 10 and 100. Do not change simulation/view distance
|
|
between matched runs or turn off game logic to manufacture a speedup.
|
|
This first release has not been validated under a 50-player real workload.
|
|
|
|
Optional Java 25 HotSpot experiment: add --compact-headers to the run command.
|
|
Reports capture the actual compact object header flag and collector names.
|
|
Compare against the same workload with the flag omitted; object allocation
|
|
changes do not establish a whole-server RAM/TPS gain.
|
|
|
|
Compare generated reports:
|
|
python3 tools/compare_benchmarks.py baseline-ticks.json optimized-ticks.json --strict
|
|
|
|
Baseline must be a separate instance: --baseline adds no optimizers but doesn't
|
|
delete mods from an existing optimized instance. Use clean directories.
|