perf(gen_build): skip gen-dir when BUILD.bazel is newer than sources#94
Open
english wants to merge 1 commit into
Open
perf(gen_build): skip gen-dir when BUILD.bazel is newer than sources#94english wants to merge 1 commit into
english wants to merge 1 commit into
Conversation
Adds an mtime check so directories whose BUILD.bazel is already newer than all source files are skipped entirely. Adds ~2s overhead on cold runs (checking mtimes with no BUILD files present) but reduces incremental (warm) runs from ~10s to ~1.8s. ### Benchmark `examples/gen_srcs_bench` (Hyperfine, 5 runs, 19607 namespaces) - cold (prepare: delete BUILD.bazel): 9.660s → 11.696s ± 1.943s - warm (no-op, all BUILD files current): **1.841s ± 0.090s** Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0152567 to
fc9cca9
Compare
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.
Adds an mtime check so directories whose BUILD.bazel is already newer than all source files are
skipped entirely. This adds ~2s overhead on cold runs (checking mtimes with no BUILD files present)
but reduces incremental (warm) runs from ~10s to ~1.8s.
Benchmark
examples/gen_srcs_bench(Hyperfine, 5 runs, 19607 namespaces)banksy(Hyperfine, 10 runs, 7208 source files, warm)(written by Claude)