{ "kind": "horizon-server-benchmark", "date": "2026-10-17T18:12:19+00:00", "machine": { "system": "Linux", "machine": "x86_64", "cpus": 4 }, "commit": "7bbbf6e97fb53683eae0a01ce2c134e53cb649a7", "java": [ "openjdk 25.0.4.1 2026-08-18" ], "settings": { "servers": "horizon,vanilla", "bots": "1,10,25,50", "behaviour": "explore", "join_every": 1.0, "warmup": 60, "seconds": 180, "seed": 12345, "explore_speed": 0.8, "gamerule": "", "heap": "4g", "out": "/home/ludovic/code/horizon/.claude/worktrees/server-host-4/.local/bench-out/explore-equal-rate.json", "nice": 19, "bots_via": "ssh macmini", "bots_bin": "/Users/ludovicmarie/code/horizon/.claude/worktrees/server-host-4/target/release/horizon-bots", "connect": "", "properties": { "level-seed": "12345", "view-distance": "10", "simulation-distance": "10", "online-mode": "false", "white-list": "false", "gamemode": "creative", "force-gamemode": "true", "spawn-protection": "0", "max-players": "200", "difficulty": "easy", "sync-chunk-writes": "true" } }, "runs": [ { "server": "horizon", "bots": 1, "behaviour": "explore", "start_seconds": 9.42, "mspt": { "average": 3.16, "p50": 2.98, "p95": 5.78, "p99": 12.17 }, "mspt_worst_p99": 38.1, "tps": 20.0, "rss_mb": { "mean": 759.26, "max": 769.5 }, "cpu_percent": 21.74, "chunks_per_second": 1.64, "unique_per_second": 1.27, "forgotten_per_second": 1.54, "waited_ticks_per_second": 0.0, "chunks_total": 841, "chunks_per_bot": { "explore": 841.0 }, "unique_chunks_per_bot": { "explore": 781.0 }, "resent": 0, "pulled_back": 0, "moved_too_quickly": 0, "moved_wrongly": 0, "bots_joined": 1, "bots_failed": [], "tick_queries": 35 }, { "server": "vanilla", "bots": 1, "behaviour": "explore", "start_seconds": 17.17, "mspt": { "average": 16.82, "p50": 16.67, "p95": 27.3, "p99": 52.16 }, "mspt_worst_p99": 453.4, "tps": 20.0, "rss_mb": { "mean": 3373.16, "max": 3405.9 }, "cpu_percent": 69.22, "chunks_per_second": 1.66, "unique_per_second": 1.35, "forgotten_per_second": 1.54, "waited_ticks_per_second": 0.0, "chunks_total": 838, "chunks_per_bot": { "explore": 838.0 }, "unique_chunks_per_bot": { "explore": 779.0 }, "resent": 0, "pulled_back": 0, "moved_too_quickly": 0, "moved_wrongly": 0, "bots_joined": 1, "bots_failed": [], "tick_queries": 35 }, { "server": "horizon", "bots": 10, "behaviour": "explore", "start_seconds": 9.82, "mspt": { "average": 9.83, "p50": 8.65, "p95": 19.01, "p99": 32.9 }, "mspt_worst_p99": 64.0, "tps": 20.0, "rss_mb": { "mean": 861.49, "max": 922.2 }, "cpu_percent": 77.43, "chunks_per_second": 13.71, "unique_per_second": 12.31, "forgotten_per_second": 13.59, "waited_ticks_per_second": 0.0, "chunks_total": 7831, "chunks_per_bot": { "explore": 783.1 }, "unique_chunks_per_bot": { "explore": 757.1 }, "resent": 0, "pulled_back": 1051, "moved_too_quickly": 0, "moved_wrongly": 0, "bots_joined": 10, "bots_failed": [], "tick_queries": 35 }, { "server": "vanilla", "bots": 10, "behaviour": "explore", "start_seconds": 15.06, "mspt": { "average": 24.38, "p50": 21.55, "p95": 39.58, "p99": 66.64 }, "mspt_worst_p99": 107.1, "tps": 20.0, "rss_mb": { "mean": 3569.41, "max": 3685.1 }, "cpu_percent": 132.09, "chunks_per_second": 13.54, "unique_per_second": 12.32, "forgotten_per_second": 13.62, "waited_ticks_per_second": 0.0, "chunks_total": 7753, "chunks_per_bot": { "explore": 775.3 }, "unique_chunks_per_bot": { "explore": 749.2 }, "resent": 0, "pulled_back": 1027, "moved_too_quickly": 6, "moved_wrongly": 0, "bots_joined": 10, "bots_failed": [], "tick_queries": 35 }, { "server": "horizon", "bots": 25, "behaviour": "explore", "start_seconds": 9.31, "mspt": { "average": 16.87, "p50": 15.4, "p95": 30.88, "p99": 46.73 }, "mspt_worst_p99": 84.9, "tps": 20.0, "rss_mb": { "mean": 887.11, "max": 945.5 }, "cpu_percent": 111.2, "chunks_per_second": 33.51, "unique_per_second": 29.92, "forgotten_per_second": 33.33, "waited_ticks_per_second": 0.0, "chunks_total": 19718, "chunks_per_bot": { "explore": 788.72 }, "unique_chunks_per_bot": { "explore": 759.08 }, "resent": 0, "pulled_back": 3770, "moved_too_quickly": 0, "moved_wrongly": 0, "bots_joined": 25, "bots_failed": [], "tick_queries": 35 }, { "server": "vanilla", "bots": 25, "behaviour": "explore", "start_seconds": 14.94, "mspt": { "average": 30.29, "p50": 28.25, "p95": 43.47, "p99": 68.56 }, "mspt_worst_p99": 165.2, "tps": 20.0, "rss_mb": { "mean": 3608.97, "max": 3732.0 }, "cpu_percent": 176.28, "chunks_per_second": 32.98, "unique_per_second": 29.29, "forgotten_per_second": 32.84, "waited_ticks_per_second": 0.0, "chunks_total": 19442, "chunks_per_bot": { "explore": 777.68 }, "unique_chunks_per_bot": { "explore": 748.24 }, "resent": 0, "pulled_back": 5139, "moved_too_quickly": 11, "moved_wrongly": 0, "bots_joined": 25, "bots_failed": [], "tick_queries": 35 }, { "server": "horizon", "bots": 50, "behaviour": "explore", "start_seconds": 9.41, "mspt": { "average": 23.57, "p50": 20.43, "p95": 47.53, "p99": 67.23 }, "mspt_worst_p99": 106.2, "tps": 20.0, "rss_mb": { "mean": 924.41, "max": 984.3 }, "cpu_percent": 127.14, "chunks_per_second": 66.56, "unique_per_second": 59.42, "forgotten_per_second": 66.43, "waited_ticks_per_second": 0.0, "chunks_total": 39950, "chunks_per_bot": { "explore": 799.0 }, "unique_chunks_per_bot": { "explore": 767.56 }, "resent": 0, "pulled_back": 7434, "moved_too_quickly": 0, "moved_wrongly": 0, "bots_joined": 50, "bots_failed": [], "tick_queries": 35 }, { "server": "vanilla", "bots": 50, "behaviour": "explore", "start_seconds": 15.04, "mspt": { "average": 42.44, "p50": 40.71, "p95": 54.84, "p99": 94.23 }, "mspt_worst_p99": 212.3, "tps": 20.0, "rss_mb": { "mean": 3667.85, "max": 3780.8 }, "cpu_percent": 200.85, "chunks_per_second": 65.17, "unique_per_second": 58.11, "forgotten_per_second": 65.22, "waited_ticks_per_second": 0.0, "chunks_total": 39772, "chunks_per_bot": { "explore": 795.44 }, "unique_chunks_per_bot": { "explore": 764.02 }, "resent": 0, "pulled_back": 10604, "moved_too_quickly": 38, "moved_wrongly": 0, "bots_joined": 50, "bots_failed": [], "tick_queries": 35 } ] }