Skip to content

Use line-table debuginfo for dev builds - #209

Merged
JacobStephens2 merged 2 commits into
issue-174from
issue-202
Sep 30, 2026
Merged

JacobStephens2 merged 2 commits into
issue-174from
issue-202

Conversation

@JacobStephens2

Copy link
Copy Markdown
Owner

Summary

Debug builds (and so cargo test) now keep only line tables for thirdshift and no debuginfo for dependencies. The baseline for #174 is posted on #174.

+[profile.dev]
+debug = "line-tables-only"
+
+[profile.dev.package."*"]
+debug = false
+
 [profile.dist]
 inherits = "release"

Evidence

Same machine (4 cores, rustc 1.98.1), run back to back. Load is the 1-minute average sampled every 5s during each command. Other Runs were active, so neither set is an idle-machine measurement for #174's targets, but the load was similar for both.

Measurement Before After
Cold cargo test --no-run wall 127s 104s
Cold user + sys 287 + 50 = 336s 233 + 41 = 274s
Cold load (mean / max) 3.54 / 4.53 4.59 / 5.03
Warm full cargo test wall 268s 261s
Warm user + sys 479 + 222 = 701s 468 + 217 = 685s
Warm load (mean / max) 5.07 / 5.78 4.94 / 5.31
target/ after cold build 1.5GB 838MB
Debug binary 108MB 27MB

The cold build and the disk use improve. The warm suite barely moves: its time goes on starting processes, not on linking. #174's "half the CPU time" target still needs the later levers.

  • Before and after: full cargo test passes (24 test binaries, 0 failures).
  • Backtraces: a throwaway panicking unit test, run with RUST_BACKTRACE=1 and then removed, still shows file and line:
thread 'git::tests::ts202_backtrace_probe' panicked at src/git.rs:101:18:
   5: thirdshift::git::tests::ts202_backtrace_probe
             at ./src/git.rs:101:18

Merge Danger

Door: two-way

Delete the two profile blocks to go back.

Blast Radius: dev-builds

Only dev and test builds change. release and dist are untouched, so shipped binaries are unchanged. Debugger locals are gone in dev builds, and dependency frames in backtraces lose file and line.

Unaddressed findings

Standards

  • The comment's 108MB / 1.5GB figures will go stale. Skipped: they record why the profile exists, and the measurements behind them are here and on Make the test suite faster #174.

Spec

None.

Closes #202

🤖 Generated with Claude Code

JacobStephens2 and others added 2 commits September 30, 2026 20:29
Line tables for the crate and no debuginfo for dependencies: the debug
binary drops from 108MB to 27MB and target/ from 1.5GB to 838MB, and
backtraces keep file and line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JacobStephens2
JacobStephens2 merged commit 4139e46 into issue-174 Sep 30, 2026
13 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-202 branch September 30, 2026 20:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant