Skip to content

Optimize DisplayWidth processing path#2

Merged
ainame merged 1 commit intomainfrom
codex/optimize-processing-path
Apr 6, 2026
Merged

Optimize DisplayWidth processing path#2
ainame merged 1 commit intomainfrom
codex/optimize-processing-path

Conversation

@ainame
Copy link
Copy Markdown
Owner

@ainame ainame commented Apr 6, 2026

Summary

  • reduce overhead in processed string measurement by scanning unicodeScalars in chunks
  • avoid allocating an array for multi-scalar grapheme width calculation
  • keep public behavior unchanged

Benchmark

Measured locally with a temporary swiftc -O harness compiled against Sources/DisplayWidth/*.swift on the same machine before and after this change.

Case Before After Change
plain-string 106776.7 ns/op 105549.7 ns/op -1.1%
processed-ascii 136009.5 ns/op 117706.1 ns/op -13.5%
processed-ansi-tab 34249.2 ns/op 25884.3 ns/op -24.4%
processed-emoji 90418.0 ns/op 64631.2 ns/op -28.5%

Testing

  • swift test

@ainame ainame merged commit f0c6552 into main Apr 6, 2026
1 check passed
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