Optimize string formatting to reduce allocations #31742
Closed
+125
−59
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.
Identified and fixed inefficient string handling patterns that cause unnecessary heap allocations in hot paths (progress rendering, benchmarking, LSP operations).
Changes
Replace
push_str(&format!(...))withwrite!macro - Eliminates intermediate String allocation per callRemove redundant
.to_string()after.join()-.join()already returns StringUse
into_iter()instead of.iter().map(|s| s.to_string())- Moves owned strings rather than cloningOptimize hex fingerprint formatting - Replaced N allocations with single pre-sized buffer using
write!in loopEliminate intermediate Vec in string building - Changed
.collect::<Vec<_>>().join("\n")to direct string building with conditional newlinesImpact
Most significant in:
cli/lsp/language_server.rs- Status page generation (68 net line change)cli/tools/bench/mitata.rs- Benchmark output formattingext/node/ops/crypto/x509.rs- Certificate fingerprint computation10 files modified. All changes maintain existing APIs and behavior.
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.