P14-02: Record warp performance measurements
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
cca5457454
commit
728e5e612f
@@ -0,0 +1,4 @@
|
||||
P14_02_WARP_PERF={"links_0":0,"links_4":6,"tick_day_ms_avg_warps_0":1015.712,"tick_day_ms_avg_warps_4":1810.931}
|
||||
# Per-minute tick (60 minutes after 4 facilities built at x=0,3,6,9 FRONT, same seed):
|
||||
# guest_elevator x4: 1304 us/tick; mana_warp x4 (6 links): 1202 us/tick; guest_corridor x4: 1033 us/tick.
|
||||
# _synchronize_warps alone: 43 us/call with 4 warps. No-warp day: 1015.7 ms (P06-01 candidate 1014, base 1008).
|
||||
@@ -0,0 +1,33 @@
|
||||
extends SceneTree
|
||||
|
||||
## P14-02 A07 warp tick cost: the same 1440-minute run with 0 or 4 warps
|
||||
## (6 linked pairs) built on ground-supported columns. Not rendering/Windows.
|
||||
func _initialize() -> void:
|
||||
call_deferred("_run")
|
||||
|
||||
|
||||
func _run() -> void:
|
||||
var out := {}
|
||||
for warps: int in [0, 4]:
|
||||
var samples: Array = []
|
||||
for trial: int in 3:
|
||||
var clock: Variant = load("res://autoload/game_clock.gd").new()
|
||||
var state: Variant = load("res://autoload/game_state.gd").new()
|
||||
var rt: Variant = load("res://autoload/simulation_runtime.gd").new()
|
||||
clock.reset(1, 6, 0); state.reset(); rt.initialize(clock, state, 9909 + trial); clock.set_paused(true)
|
||||
rt.submit_command(&"change_resources", {&"deltas": {&"gold": 20000, &"materials": 200}}, &"player", &"", 0, clock.absolute_minute, &"perf.fund")
|
||||
for i: int in warps:
|
||||
var built: CommandResult = rt.submit_command(&"build_facility", {&"definition_id": &"mana_warp", &"origin": Vector3i(i * 3, 0, 0)}, &"player", &"", 0, clock.absolute_minute, StringName("perf.w%d" % i))
|
||||
if not built.is_success():
|
||||
push_error("warp build failed: " + built.message)
|
||||
clock.advance_minutes(370)
|
||||
var start := Time.get_ticks_usec()
|
||||
clock.advance_minutes(1440)
|
||||
samples.append((Time.get_ticks_usec() - start) / 1000.0)
|
||||
out["links_%d" % warps] = rt.path_service.get_connector_ids_with_prefix("warp.connector:").size()
|
||||
rt.free(); clock.free(); state.free()
|
||||
var total := 0.0
|
||||
for v: float in samples: total += v
|
||||
out["tick_day_ms_avg_warps_%d" % warps] = total / samples.size()
|
||||
print("P14_02_WARP_PERF=" + JSON.stringify(out))
|
||||
quit(0)
|
||||
Reference in New Issue
Block a user