diff options
| author | Somhairle H. Marisol <[email protected]> | 2026-09-29 04:23:26 +0800 |
|---|---|---|
| committer | Somhairle H. Marisol <[email protected]> | 2026-09-29 04:23:26 +0800 |
| commit | f681867692f575b078f46afaf07060faed457461 (patch) | |
| tree | 4ab11638357891257703e55f5aa790868e902e3c /artifacts/perf-multiworld/20260928T195839Z/control-n1.log | |
| parent | 2d9e4d845019b6c8793633258a45b91e0358e0e9 (diff) | |
| download | living-village-f681867692f575b078f46afaf07060faed457461.tar.gz | |
p59: Sim 多世界并存后台压测(内存/GC 增长曲线证据单,只读)
目标:量化「多世界并存 × 天数」的内存/GC 增长,收口 P49 范围外项。
口径:新增 Headless `--profile-multiworld <worlds> <days> <npcs> <sampleEveryDays> <seedBase>`,
N 个 Sim 世界同时存活,每轮 Parallel.For 各推进 sampleEveryDays 天并采样一行
(worlds/events/rumors/annals/memory_entries/gc_live_mb/working_set_rss_mb/elapsed_s,
行尾 flush);未改 Kernel/Sim 任何语义(Sim.initialWorldN / Sim.step 原样调用)。
标定:1 世界 × 2 天探针 = 34.2s(与 overnight-status 的 34.6s 一致),据此定 N=10 × 20 天。
运行:独立 systemd --user transient unit living-village-multiworld.service
(scripts/profile-multiworld.sh,StandardOutput=append: + exec 2>&1,state.json 记
pid/unit/log/commit/参数/起止/exit)。主运行 wall=1024.4s(17.1min < 40min),exit=0。
结论(artifacts/perf-multiworld/20260928T195839Z/README.md):
- 随世界数近似线性,未超线性:N=1 vs N=10(同日 D=20)annals/memory_entries 恰 10×、
rumors 9.67×、gc_live 8.81×(每世界 1.23MB,共享运行时开销摊薄)。
- RSS 有界无泄漏:N=10 39→峰值123(day8)→稳定104~112MB;每 2 天一轮墙钟恒 101~105s。
原因是历史集合有界(rumorRetentionDays=3 / rumorCapacity=16384 / maxAnnalEntries=128 /
Mind.Memory 上限),约 day4 后进入稳态。
- 两轮世界0 digest 一致(2364CB74…)→ 并存+并行不改变单世界语义。
- 数字未越界 → 明确「不修」;只读本 slice 不修 Kernel/Sim。
回归:Desktop 304/304 + Kernel 119/119;--performance-baseline ×3 digest
953775FAEB2F… 不变,performance_determinism=PASS。未 push。
Diffstat (limited to 'artifacts/perf-multiworld/20260928T195839Z/control-n1.log')
| -rw-r--r-- | artifacts/perf-multiworld/20260928T195839Z/control-n1.log | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/artifacts/perf-multiworld/20260928T195839Z/control-n1.log b/artifacts/perf-multiworld/20260928T195839Z/control-n1.log new file mode 100644 index 0000000..88fe297 --- /dev/null +++ b/artifacts/perf-multiworld/20260928T195839Z/control-n1.log @@ -0,0 +1,13 @@ +multiworld_start worlds=1 days=20 npcs=30 sample_every_days=2 seed_base=42 ticks_per_day=5184000 +multiworld_sample worlds=1 day=0/20 events=0 rumors=0 annals=0 memory_entries=0 gc_live_mb=0.09 working_set_rss_mb=38.83 elapsed_s=0.0 +multiworld_sample worlds=1 day=2/20 events=0 rumors=3921 annals=128 memory_entries=1920 gc_live_mb=0.85 working_set_rss_mb=57.19 elapsed_s=34.0 +multiworld_sample worlds=1 day=4/20 events=0 rumors=7843 annals=128 memory_entries=1920 gc_live_mb=1.37 working_set_rss_mb=61.71 elapsed_s=68.1 +multiworld_sample worlds=1 day=6/20 events=0 rumors=7849 annals=128 memory_entries=1920 gc_live_mb=1.38 working_set_rss_mb=63.63 elapsed_s=101.9 +multiworld_sample worlds=1 day=8/20 events=0 rumors=7925 annals=128 memory_entries=1920 gc_live_mb=1.39 working_set_rss_mb=64.29 elapsed_s=135.8 +multiworld_sample worlds=1 day=10/20 events=0 rumors=7723 annals=128 memory_entries=1920 gc_live_mb=1.37 working_set_rss_mb=64.57 elapsed_s=169.6 +multiworld_sample worlds=1 day=12/20 events=0 rumors=7727 annals=128 memory_entries=1920 gc_live_mb=1.37 working_set_rss_mb=64.92 elapsed_s=203.6 +multiworld_sample worlds=1 day=14/20 events=0 rumors=8038 annals=128 memory_entries=1920 gc_live_mb=1.41 working_set_rss_mb=67.88 elapsed_s=237.2 +multiworld_sample worlds=1 day=16/20 events=0 rumors=7953 annals=128 memory_entries=1920 gc_live_mb=1.40 working_set_rss_mb=67.88 elapsed_s=271.2 +multiworld_sample worlds=1 day=18/20 events=0 rumors=7901 annals=128 memory_entries=1920 gc_live_mb=1.39 working_set_rss_mb=67.89 elapsed_s=305.2 +multiworld_sample worlds=1 day=20/20 events=0 rumors=7932 annals=128 memory_entries=1920 gc_live_mb=1.39 working_set_rss_mb=67.94 elapsed_s=339.0 +multiworld_done worlds=1 day=20 elapsed_s=339.1 world_digests=0:2364CB74F5FCA34503269F413F7184F455006C9975EB01B11219D25A3A33FDD2 |
