Skip to content

performance work resulting in markup.lite - #5

Draft
c-cube wants to merge 109 commits into
ragelfrom
sc/perf-work-2026-08-take2
Draft

performance work resulting in markup.lite#5
c-cube wants to merge 109 commits into
ragelfrom
sc/perf-work-2026-08-take2

Conversation

@c-cube

@c-cube c-cube commented Sep 2, 2026

Copy link
Copy Markdown

This is a fairly large PR, adding markup.lite, which reimplements a subset of the Markup API without the streaming abilities. The idea is to remove a lot of CPS/streaming overhead since we generally use this from a string source. There's also optimizations in html writing, obtained by simply writing to a Buffer.t rather than a char stream.

tysg and others added 30 commits August 22, 2024 09:18
this will be shared with upcoming markup.tiny
3x faster:
running test-lite:

   markup writer:
     wall_seconds=4.473357
     minor_words=10,788,248,605
     major_words=228,835,444

   lite writer:
     wall_seconds=1.446172
     minor_words=526,166,350
     major_words=216,989,118

   OK: 840 HTML files serialized exactly
Simon Cruanes and others added 30 commits September 1, 2026 10:53
for the String token path it was inconsistent with the rest of the
module
use C bindings to find next `<`, also to count `\n` (for locations).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MH5DguW7uz8zgqsrHqtcHV
just translate utf16 to utf8 on the fly.
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.

2 participants