encoding.html: optimize escape performance #19264
Merged
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.
Using constants instead of re-allocating the array results in an performance improvement of about 30%.
Tested with 100k iterations:
current:
84.042ms
consts:
58.604ms
Additionally, it replaces
'"'
with'"'
and'''
with'''
.The values are the common replacements for
"
and'
, e.g. also used for escaping in Go.馃 Generated by Copilot at 435ad5b
Refactor
escape
function inencoding/html
module to use constant arrays.馃 Generated by Copilot at 435ad5b
html_escape_table
andhtml_escape_table_len
to store the HTML replacement characters for the escape function (link)