Add performance benchmarking setup - #216
Open
rubensworks wants to merge 1 commit into
Open
Conversation
Measures what Integrated Crafting adds on top of an Integrated Dynamics network: crafting interfaces, crafting job scheduling and execution, and the network's recipe index. Mirrors the setup of Integrated Dynamics and Integrated Tunnels, and reuses ID's measurement infrastructure. Adds eight benchmark presets on a shared cable grid: three idle presets that isolate the standing cost of crafting interfaces and of crafting writers that have nothing to do, three active presets that continuously craft (flat, dependency-resolving, and with a 2.45x larger recipe index at constant crafting work), and two topology churn presets. All presets are also exposed through /integratedcrafting generatecrafting <preset> <size> for manual profiling in a real world. Every preset asserts after warmup that none of its parts is deactivated or in an aspect error state, and that every filled recipe slot is valid, so that a preset cannot silently degrade into an expensive no-op. Storage chests are deliberately only filled two thirds: a crafting interface buffers its results until it can push them into network storage and stops ticking its jobs entirely while that buffer is non-empty, so full chests jam every interface after a single craft. Without PERFORMANCE_BENCHMARK_ENABLED, all benchmark game tests succeed immediately without generating anything. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DF81jeWnWNR3ECHzNd9mRh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Measures what Integrated Crafting adds on top of an Integrated Dynamics
network: crafting interfaces, crafting job scheduling and execution, and
the network's recipe index. Mirrors the setup of Integrated Dynamics and
Integrated Tunnels, and reuses ID's measurement infrastructure.
Adds eight benchmark presets on a shared cable grid: three idle presets
that isolate the standing cost of crafting interfaces and of crafting
writers that have nothing to do, three active presets that continuously
craft (flat, dependency-resolving, and with a 2.45x larger recipe index
at constant crafting work), and two topology churn presets.
All presets are also exposed through /integratedcrafting generatecrafting
for manual profiling in a real world.
Every preset asserts after warmup that none of its parts is deactivated
or in an aspect error state, and that every filled recipe slot is valid,
so that a preset cannot silently degrade into an expensive no-op.
Storage chests are deliberately only filled two thirds: a crafting
interface buffers its results until it can push them into network
storage and stops ticking its jobs entirely while that buffer is
non-empty, so full chests jam every interface after a single craft.
Without PERFORMANCE_BENCHMARK_ENABLED, all benchmark game tests succeed
immediately without generating anything.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01DF81jeWnWNR3ECHzNd9mRh