下载 App
创世纪更新公告V1 后期卡顿优化 地图扩大选择 预计今日内上限
一、后期卡顿优化(实测数据)
用 debug.sethook 采样 + A/B 对照定位真凶,不是靠猜:
| 优化项 | 改动前 | 改动后 | 手法 |
|---|---|---|---|
| growTrees 全图生态 | 每帧全扫 5 万格 | 1/8 分片 | 决定性——占原耗时 60%+ |
| EnsureComponents 全图 BFS | 每次地形变即重算 79ms | 重建 0 次 | 新增 walkRevision,只有真改可走性才重算 |
| assignRoles 角色分配 | O(名额×人口) | O(角色×人口) | 一次遍历 + 分角色排序 |
| Life.Prepare | 123ms | 0.97ms | 居民/照料按 home 分桶,消除 O(n²) |
| Life.Daily | 104ms | 3.06ms | 幼儿分餐、家庭生育分桶 |
| pair 配对 | O(n²) | 同家园内配对 | 按 home 分桶 |
| CountTrees | 每帧全图扫 | 日结一次 | 缓存 + Stats 改读缓存 |
| ReservedMask | 每次全量展开 | 按 revision 缓存 | — |
| Reachable 洪泛缓存 | 64 条上限、满了全清 | 512 条、逐条淘汰 | — |
| 渲染 | 每格 Coordinates | 收集时算好坐标 | — |
结果:标准档 52.9ms → 11.9ms/步;迷你档 7.2ms。巨大档 20.2ms。
二、三档地图 + 开局选择
- 迷你 192×132 → 标准 272×187(2×)→ 巨大 384×264(4×)
- 地形生成改为按实际尺寸归一化(原来硬编码 128×88 的几何,换尺寸会偏心切边)
- 创世选择界面新增"地图大小"三档按钮,选中档位实时显示格数与风险提示
- 巨大档用红色警示"卡顿风险高";替换世界确认框里再次提示

