Skip to content

Add some more text utilities#2539

Merged
jviotti merged 1 commit into
mainfrom
more-text
Jun 24, 2026
Merged

Add some more text utilities#2539
jviotti merged 1 commit into
mainfrom
more-text

Conversation

@jviotti

@jviotti jviotti commented Jun 24, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

Re-trigger cubic

@augmentcode

augmentcode Bot commented Jun 24, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR expands the text utilities by adding string-level predicates for ASCII classification.

Changes:

  • Added std::string_view overloads for is_alpha, is_digit, and is_alphanum that require non-empty input
  • Implemented the string checks by iterating characters and delegating to the existing character predicates
  • Added unit tests covering all-allowed strings, mixed-content strings, and the empty-string behavior

Technical Notes: The new APIs explicitly treat an empty string as false, matching the accompanying tests and documentation examples.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 62be144 Previous: a39f279 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.7697337358368288 ns/iter 1.7197199751450893 ns/iter 1.03
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.6965446960484667 ns/iter 1.680333885866911 ns/iter 1.01
Regex_Period_Asterisk 1.7299196837404407 ns/iter 1.6955596936911126 ns/iter 1.02
Regex_Group_Period_Asterisk_Group 1.705688839170544 ns/iter 1.699299680609889 ns/iter 1.00
Regex_Period_Plus 2.024418376098977 ns/iter 2.2037231194035694 ns/iter 0.92
Regex_Period 2.0335546890707037 ns/iter 2.100726457717406 ns/iter 0.97
Regex_Caret_Period_Plus_Dollar 2.0207443020862086 ns/iter 2.1542747589624422 ns/iter 0.94
Regex_Caret_Group_Period_Plus_Group_Dollar 2.18597305930139 ns/iter 2.074595552833167 ns/iter 1.05
Regex_Caret_Period_Asterisk_Dollar 2.0206255060834986 ns/iter 1.7185965213453946 ns/iter 1.18
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.958349824203154 ns/iter 1.7207448935561975 ns/iter 1.14
Regex_Caret_X_Hyphen 6.0940469060524975 ns/iter 6.111103546072734 ns/iter 1.00
Regex_Period_Md_Dollar 19.61074613149029 ns/iter 17.570647721169745 ns/iter 1.12
Regex_Caret_Slash_Period_Asterisk 5.744746660000146 ns/iter 5.69314458000008 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 2.161609487840094 ns/iter 2.4503161355134226 ns/iter 0.88
Regex_Nested_Backtrack 26.18585276120704 ns/iter 31.61033730978404 ns/iter 0.83
JSON_Array_Of_Objects_Unique 354.50962718620275 ns/iter 351.2262603987262 ns/iter 1.01
JSON_Parse_1 3704.7672416537425 ns/iter 3827.3739299366857 ns/iter 0.97
JSON_Parse_Real 5108.737291041008 ns/iter 5479.0054868494735 ns/iter 0.93
JSON_Parse_Decimal 5325.347709610983 ns/iter 5549.291437675618 ns/iter 0.96
JSON_Parse_Schema_ISO_Language 3920150.862069315 ns/iter 3530707.0053189374 ns/iter 1.11
JSON_Parse_Integer 3049.558793811758 ns/iter 2995.224673295917 ns/iter 1.02
JSON_Parse_String_NonSSO_Plain 3677.7046046832925 ns/iter 3517.7434571745557 ns/iter 1.05
JSON_Parse_String_SSO_Plain 1905.9787760877582 ns/iter 1864.5650930924958 ns/iter 1.02
JSON_Parse_String_Escape_Heavy 15677.062745564757 ns/iter 18284.238949224615 ns/iter 0.86
JSON_Parse_Object_Short_Keys 5052.752919998511 ns/iter 5671.222349174087 ns/iter 0.89
JSON_Parse_Object_Scalar_Properties 2666.7521540285597 ns/iter 2752.6782978202386 ns/iter 0.97
JSON_Parse_Object_Array_Properties 3450.070814636062 ns/iter 3407.3990409702305 ns/iter 1.01
JSON_Parse_Object_Object_Properties 3477.3774323984485 ns/iter 3515.084151332803 ns/iter 0.99
JSON_Parse_Nested_Containers 29798.786987289735 ns/iter 27554.481104827144 ns/iter 1.08
JSON_From_String_Copy 26.3245329706438 ns/iter 24.25552158079658 ns/iter 1.09
JSON_From_String_Temporary 20.52345299966003 ns/iter 19.902292390733205 ns/iter 1.03
JSON_Number_To_Double 34.685310313808564 ns/iter 33.27828695025208 ns/iter 1.04
JSON_Object_At_Last_Key/8 4.013231522711431 ns/iter 3.7032010941585374 ns/iter 1.08
JSON_Object_At_Last_Key/32 13.725637516541475 ns/iter 12.291770924516841 ns/iter 1.12
JSON_Object_At_Last_Key/128 69.1872773872898 ns/iter 56.02902156524005 ns/iter 1.23
JSON_Object_At_Last_Key/512 201.32814671391196 ns/iter 192.73087990156716 ns/iter 1.04
JSON_Fast_Hash_Helm_Chart_Lock 66.66888747250016 ns/iter 58.55808714016099 ns/iter 1.14
JSON_Equality_Helm_Chart_Lock 144.22309039020877 ns/iter 133.56231833687752 ns/iter 1.08
JSON_Divisible_By_Decimal 185.8783809168335 ns/iter 174.6333234322889 ns/iter 1.06
JSON_String_Equal/10 7.373978863087019 ns/iter 6.766790582439124 ns/iter 1.09
JSON_String_Equal/100 7.977062795597898 ns/iter 6.976058061846907 ns/iter 1.14
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9403189074691323 ns/iter 0.7745686006926514 ns/iter 1.21
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.8179909677014567 ns/iter 3.346596793164343 ns/iter 1.14
JSON_String_Fast_Hash/10 2.744501738523062 ns/iter 2.4076243889381552 ns/iter 1.14
JSON_String_Fast_Hash/100 2.1536335893799556 ns/iter 2.0687341168380042 ns/iter 1.04
JSON_String_Key_Hash/10 1.4138166101777725 ns/iter 1.3673434706960788 ns/iter 1.03
JSON_String_Key_Hash/100 2.554693975890932 ns/iter 2.2229264146316727 ns/iter 1.15
JSON_Object_Defines_Miss_Same_Length 2.6999259724039626 ns/iter 2.3976907847360827 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 2.4252289484441243 ns/iter 2.3691710049553003 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 2.4257032014277633 ns/iter 2.359811877432601 ns/iter 1.03
Pointer_Object_Traverse 14.329384641347733 ns/iter 13.7204331474882 ns/iter 1.04
Pointer_Object_Try_Traverse 26.044678282551168 ns/iter 23.04859932898614 ns/iter 1.13
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.64188586586374 ns/iter 168.35544326925572 ns/iter 1.06
Pointer_Walker_Schema_ISO_Language 3009931.1502151415 ns/iter 3457281.5166054782 ns/iter 0.87
Pointer_Maybe_Tracked_Deeply_Nested/0 902474.2654400216 ns/iter 918755.8305519662 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/1 1173175.629213419 ns/iter 1194224.3815551503 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 347.45976285581577 ns/iter 347.39185255657907 ns/iter 1.00
URITemplateRouter_Create 22563.341936292436 ns/iter 23203.27181490395 ns/iter 0.97
URITemplateRouter_Match 189.04874871889925 ns/iter 167.6012765719765 ns/iter 1.13
URITemplateRouter_Match_BasePath 203.51194845524068 ns/iter 191.09579049977373 ns/iter 1.06
URITemplateRouterView_Restore 9191.944467564876 ns/iter 9254.417493273564 ns/iter 0.99
URITemplateRouterView_Match 130.97565288053644 ns/iter 129.59768149083155 ns/iter 1.01
URITemplateRouterView_Match_BasePath 147.615786473611 ns/iter 149.60557010356706 ns/iter 0.99
URITemplateRouterView_Arguments 398.2411258989998 ns/iter 402.50786715855355 ns/iter 0.99
JSONL_Parse_Large 12374707.620689023 ns/iter 12441377.155173069 ns/iter 0.99
JSONL_Parse_Large_GZIP 13266270.038461523 ns/iter 13525933.962264474 ns/iter 0.98
HTML_Build_Table_100000 65539371.27273457 ns/iter 63792439.36364467 ns/iter 1.03
HTML_Render_Table_100000 3453403.2643173486 ns/iter 3028550.2049184 ns/iter 1.14
GZIP_Compress_ISO_Language_Set_3_Locations 26875321.000000406 ns/iter 26609421.461535893 ns/iter 1.01
GZIP_Decompress_ISO_Language_Set_3_Locations 5413165.9919346105 ns/iter 7142633.1428569015 ns/iter 0.76
GZIP_Compress_ISO_Language_Set_3_Schema 1586110.131455198 ns/iter 1954141.3002753337 ns/iter 0.81
GZIP_Decompress_ISO_Language_Set_3_Schema 259330.48102679715 ns/iter 294543.9485083636 ns/iter 0.88
JOSE_VerifySignature_RS256 20444.735604546288 ns/iter 22210.742212107318 ns/iter 0.92
JOSE_VerifySignature_ES512 937659.0158520794 ns/iter 1026659.7517731033 ns/iter 0.91

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 62be144 Previous: a39f279 Ratio
JOSE_VerifySignature_RS256 24634.76601141332 ns/iter 22205.696931690138 ns/iter 1.11
JOSE_VerifySignature_ES512 641754.2681358494 ns/iter 583885.3102881174 ns/iter 1.10
GZIP_Compress_ISO_Language_Set_3_Locations 39352427.7777778 ns/iter 36219478.26315806 ns/iter 1.09
GZIP_Decompress_ISO_Language_Set_3_Locations 4059197.9017344886 ns/iter 4146985.7083334154 ns/iter 0.98
GZIP_Compress_ISO_Language_Set_3_Schema 2283866.003268319 ns/iter 2018209.6826346705 ns/iter 1.13
GZIP_Decompress_ISO_Language_Set_3_Schema 277591.9079365196 ns/iter 376338.9130675382 ns/iter 0.74
HTML_Build_Table_100000 70380770.79999994 ns/iter 59805324.83333907 ns/iter 1.18
HTML_Render_Table_100000 1954638.8997215624 ns/iter 1821362.778645863 ns/iter 1.07
JSONL_Parse_Large 12466000.446427269 ns/iter 13136055.24528354 ns/iter 0.95
JSONL_Parse_Large_GZIP 14009097.480000036 ns/iter 14572762.787234424 ns/iter 0.96
URITemplateRouter_Create 29321.361580504865 ns/iter 30248.432460642933 ns/iter 0.97
URITemplateRouter_Match 152.0840299010423 ns/iter 156.62330590246944 ns/iter 0.97
URITemplateRouter_Match_BasePath 179.683657714699 ns/iter 180.2561444607755 ns/iter 1.00
URITemplateRouterView_Restore 8645.01863331255 ns/iter 7859.849567170904 ns/iter 1.10
URITemplateRouterView_Match 126.11019178829638 ns/iter 126.12495053313208 ns/iter 1.00
URITemplateRouterView_Match_BasePath 142.3281333658186 ns/iter 143.31847546142615 ns/iter 0.99
URITemplateRouterView_Arguments 457.9090838274112 ns/iter 470.5258255766636 ns/iter 0.97
Pointer_Object_Traverse 34.22042606618841 ns/iter 28.3554285706917 ns/iter 1.21
Pointer_Object_Try_Traverse 25.019650783208917 ns/iter 23.26461962645765 ns/iter 1.08
Pointer_Push_Back_Pointer_To_Weak_Pointer 151.1216140546455 ns/iter 151.44941761788203 ns/iter 1.00
Pointer_Walker_Schema_ISO_Language 1870466.1320754595 ns/iter 1848098.617414217 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/0 1534514.940789621 ns/iter 1533503.951754349 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1667736.809069271 ns/iter 1683458.9639422859 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 681.7431827378557 ns/iter 607.2673605998569 ns/iter 1.12
JSON_Array_Of_Objects_Unique 408.5303964737235 ns/iter 412.83683075533577 ns/iter 0.99
JSON_Parse_1 7454.098308623279 ns/iter 7564.656695018537 ns/iter 0.99
JSON_Parse_Real 6488.031021191497 ns/iter 6723.576713526104 ns/iter 0.96
JSON_Parse_Decimal 9553.161194558468 ns/iter 11312.120370820714 ns/iter 0.84
JSON_Parse_Schema_ISO_Language 5040810.589928029 ns/iter 5113708.661764683 ns/iter 0.99
JSON_Parse_Integer 4818.879575509022 ns/iter 4931.732960790782 ns/iter 0.98
JSON_Parse_String_NonSSO_Plain 8571.307084028183 ns/iter 8641.274043749327 ns/iter 0.99
JSON_Parse_String_SSO_Plain 3637.7969820390213 ns/iter 4005.5548266006604 ns/iter 0.91
JSON_Parse_String_Escape_Heavy 19817.879694736966 ns/iter 20721.342208043854 ns/iter 0.96
JSON_Parse_Object_Short_Keys 11364.138022864343 ns/iter 14540.882975191818 ns/iter 0.78
JSON_Parse_Object_Scalar_Properties 5763.856648188694 ns/iter 5853.009663212023 ns/iter 0.98
JSON_Parse_Object_Array_Properties 8798.804402846643 ns/iter 10172.234627195652 ns/iter 0.86
JSON_Parse_Object_Object_Properties 9125.523015283006 ns/iter 10552.548219908875 ns/iter 0.86
JSON_Parse_Nested_Containers 72603.77541979685 ns/iter 76260.89549785914 ns/iter 0.95
JSON_From_String_Copy 19.693617337786797 ns/iter 18.296355967639112 ns/iter 1.08
JSON_From_String_Temporary 16.625631922413206 ns/iter 15.353518485012568 ns/iter 1.08
JSON_Number_To_Double 19.364590689689514 ns/iter 20.57570761850717 ns/iter 0.94
JSON_Object_At_Last_Key/8 9.152096560912007 ns/iter 8.103287574886822 ns/iter 1.13
JSON_Object_At_Last_Key/32 35.17312255811764 ns/iter 31.47942361352951 ns/iter 1.12
JSON_Object_At_Last_Key/128 135.97880335352497 ns/iter 127.18813085205517 ns/iter 1.07
JSON_Object_At_Last_Key/512 559.1857664122942 ns/iter 517.3307099418832 ns/iter 1.08
JSON_Fast_Hash_Helm_Chart_Lock 53.83052911559651 ns/iter 65.59112721984854 ns/iter 0.82
JSON_Equality_Helm_Chart_Lock 160.57892002461656 ns/iter 152.89799355857988 ns/iter 1.05
JSON_Divisible_By_Decimal 231.74357842681863 ns/iter 239.39866183033277 ns/iter 0.97
JSON_String_Equal/10 6.073756723909049 ns/iter 6.306938855232069 ns/iter 0.96
JSON_String_Equal/100 6.982191205682589 ns/iter 6.930527566564796 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7141363379452657 ns/iter 0.6229818076657226 ns/iter 1.15
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 21.93596428131547 ns/iter 25.193605837177167 ns/iter 0.87
JSON_String_Fast_Hash/10 1.4080182374849055 ns/iter 1.2450822653102227 ns/iter 1.13
JSON_String_Fast_Hash/100 1.417897421184458 ns/iter 1.245525409807026 ns/iter 1.14
JSON_String_Key_Hash/10 1.0887428778676398 ns/iter 1.2462129432790157 ns/iter 0.87
JSON_String_Key_Hash/100 14.76421754869089 ns/iter 12.450269351238923 ns/iter 1.19
JSON_Object_Defines_Miss_Same_Length 3.5201000186967764 ns/iter 3.115186805800066 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 3.5291555340729603 ns/iter 3.1128376486602716 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 3.872278582625204 ns/iter 3.5379410860753295 ns/iter 1.09
Regex_Lower_S_Or_Upper_S_Asterisk 0.7041473676449198 ns/iter 0.6228533157001229 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.0558910437577957 ns/iter 0.9339809198584719 ns/iter 1.13
Regex_Period_Asterisk 1.0559108401698896 ns/iter 0.933278017588092 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 0.7035511278673507 ns/iter 0.6226002464375451 ns/iter 1.13
Regex_Period_Plus 0.7039337954661309 ns/iter 0.6222707159838072 ns/iter 1.13
Regex_Period 1.0556507027591782 ns/iter 0.9353964502432587 ns/iter 1.13
Regex_Caret_Period_Plus_Dollar 1.0561008897738753 ns/iter 0.9609406750424787 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 0.7038916242282165 ns/iter 0.6225031251280939 ns/iter 1.13
Regex_Caret_Period_Asterisk_Dollar 0.7041699783348319 ns/iter 0.6231798504669969 ns/iter 1.13
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.0551860554966421 ns/iter 0.9345804787366091 ns/iter 1.13
Regex_Caret_X_Hyphen 3.8761319409526442 ns/iter 4.0783426956193765 ns/iter 0.95
Regex_Period_Md_Dollar 33.44212803349162 ns/iter 37.46265216659248 ns/iter 0.89
Regex_Caret_Slash_Period_Asterisk 4.219575560406588 ns/iter 4.358363468166496 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 1.4066322744312587 ns/iter 1.2451532826894154 ns/iter 1.13
Regex_Nested_Backtrack 39.59033568070106 ns/iter 36.399518630819756 ns/iter 1.09

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 62be144 Previous: a39f279 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1778027623702982 ns/iter 2.478833666128547 ns/iter 0.88
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1782987848443707 ns/iter 2.462883671424388 ns/iter 0.88
Regex_Period_Asterisk 2.207284979420939 ns/iter 2.4619846801980136 ns/iter 0.90
Regex_Group_Period_Asterisk_Group 2.1833324583413085 ns/iter 2.462158452451159 ns/iter 0.89
Regex_Period_Plus 2.4882889468850067 ns/iter 3.5154413834664333 ns/iter 0.71
Regex_Period 2.4107932023545655 ns/iter 3.5158967388238507 ns/iter 0.69
Regex_Caret_Period_Plus_Dollar 2.7877030624506176 ns/iter 3.869845442041994 ns/iter 0.72
Regex_Caret_Group_Period_Plus_Group_Dollar 2.7477097216732616 ns/iter 3.86999314146304 ns/iter 0.71
Regex_Caret_Period_Asterisk_Dollar 3.0320914303507056 ns/iter 2.4621433567118465 ns/iter 1.23
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1158610848824337 ns/iter 2.46231840855815 ns/iter 1.27
Regex_Caret_X_Hyphen 6.645998839528974 ns/iter 7.033360460691445 ns/iter 0.94
Regex_Period_Md_Dollar 27.156885829592373 ns/iter 26.670529750673605 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 5.865433496136993 ns/iter 7.641783418281991 ns/iter 0.77
Regex_Caret_Period_Range_Dollar 3.7270375254005024 ns/iter 2.4645840373235575 ns/iter 1.51
Regex_Nested_Backtrack 46.564884843117525 ns/iter 36.99405606320684 ns/iter 1.26
JSON_Array_Of_Objects_Unique 399.533673256162 ns/iter 437.1450084929813 ns/iter 0.91
JSON_Parse_1 4921.041335009688 ns/iter 4925.949706575096 ns/iter 1.00
JSON_Parse_Real 5120.156698078491 ns/iter 5221.123936347897 ns/iter 0.98
JSON_Parse_Decimal 9080.29952157077 ns/iter 7552.826354824859 ns/iter 1.20
JSON_Parse_Schema_ISO_Language 4106175.014563076 ns/iter 3633326.494845203 ns/iter 1.13
JSON_Parse_Integer 3745.1790101027964 ns/iter 4023.738817433523 ns/iter 0.93
JSON_Parse_String_NonSSO_Plain 5022.871210001085 ns/iter 5115.525713703687 ns/iter 0.98
JSON_Parse_String_SSO_Plain 2727.2608890832075 ns/iter 2889.0633774355283 ns/iter 0.94
JSON_Parse_String_Escape_Heavy 14024.215581704852 ns/iter 14251.958533741468 ns/iter 0.98
JSON_Parse_Object_Short_Keys 7610.633372162046 ns/iter 7936.73891625619 ns/iter 0.96
JSON_Parse_Object_Scalar_Properties 4026.198443602166 ns/iter 4257.499659273408 ns/iter 0.95
JSON_Parse_Object_Array_Properties 5828.145193326216 ns/iter 5662.185081058538 ns/iter 1.03
JSON_Parse_Object_Object_Properties 5828.888330098709 ns/iter 5708.650843056441 ns/iter 1.02
JSON_Parse_Nested_Containers 44458.99357642567 ns/iter 44810.59915422335 ns/iter 0.99
JSON_From_String_Copy 19.507529866270417 ns/iter 21.153907144626658 ns/iter 0.92
JSON_From_String_Temporary 17.12852856196749 ns/iter 18.928362965356563 ns/iter 0.90
JSON_Number_To_Double 23.45037529746626 ns/iter 22.535435054231957 ns/iter 1.04
JSON_Object_At_Last_Key/8 3.462290840783298 ns/iter 4.715785208581295 ns/iter 0.73
JSON_Object_At_Last_Key/32 11.845468732717968 ns/iter 13.573967664642005 ns/iter 0.87
JSON_Object_At_Last_Key/128 48.95275932581523 ns/iter 47.327956020083654 ns/iter 1.03
JSON_Object_At_Last_Key/512 376.8620140500915 ns/iter 365.4446198066601 ns/iter 1.03
JSON_Fast_Hash_Helm_Chart_Lock 57.55344874770234 ns/iter 68.53751297285791 ns/iter 0.84
JSON_Equality_Helm_Chart_Lock 170.06245964819715 ns/iter 182.13128783477393 ns/iter 0.93
JSON_Divisible_By_Decimal 253.69641477116897 ns/iter 256.3336533531079 ns/iter 0.99
JSON_String_Equal/10 7.772651529933246 ns/iter 6.682586958057047 ns/iter 1.16
JSON_String_Equal/100 7.352803168386417 ns/iter 7.388743840581319 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9176191046582586 ns/iter 1.0546038084350455 ns/iter 0.87
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.559327129120124 ns/iter 12.475355533612095 ns/iter 0.85
JSON_String_Fast_Hash/10 2.174380518214496 ns/iter 2.109502303387894 ns/iter 1.03
JSON_String_Fast_Hash/100 2.154391697050014 ns/iter 2.1117731262676194 ns/iter 1.02
JSON_String_Key_Hash/10 2.1471700370259272 ns/iter 2.461395839600908 ns/iter 0.87
JSON_String_Key_Hash/100 6.354457401861398 ns/iter 8.173923262522438 ns/iter 0.78
JSON_Object_Defines_Miss_Same_Length 2.62467885434811 ns/iter 2.9112681507026785 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Small 2.690347550627968 ns/iter 2.9505104610153037 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 2.6086875122216653 ns/iter 2.9388503251994016 ns/iter 0.89
Pointer_Object_Traverse 23.39324527165274 ns/iter 25.57305038310568 ns/iter 0.91
Pointer_Object_Try_Traverse 27.979608998134616 ns/iter 30.569898114709396 ns/iter 0.92
Pointer_Push_Back_Pointer_To_Weak_Pointer 154.33930899512913 ns/iter 192.84986337005606 ns/iter 0.80
Pointer_Walker_Schema_ISO_Language 1641536.4593967225 ns/iter 1787786.7404580377 ns/iter 0.92
Pointer_Maybe_Tracked_Deeply_Nested/0 1219826.0680628566 ns/iter 1283734.1062272205 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/1 1701319.1031938202 ns/iter 2063461.1637929974 ns/iter 0.82
Pointer_Position_Tracker_Get_Deeply_Nested 675.3887402588529 ns/iter 718.5021441799947 ns/iter 0.94
URITemplateRouter_Create 30940.36701297571 ns/iter 30362.934509144576 ns/iter 1.02
URITemplateRouter_Match 177.63547142540097 ns/iter 177.98364689939754 ns/iter 1.00
URITemplateRouter_Match_BasePath 206.53020968135343 ns/iter 222.2647528203153 ns/iter 0.93
URITemplateRouterView_Restore 7902.565469909671 ns/iter 8685.980031948638 ns/iter 0.91
URITemplateRouterView_Match 164.0745716457062 ns/iter 170.87746703950418 ns/iter 0.96
URITemplateRouterView_Match_BasePath 188.77019552981778 ns/iter 202.0547886144985 ns/iter 0.93
URITemplateRouterView_Arguments 428.193207576792 ns/iter 450.287506103351 ns/iter 0.95
JSONL_Parse_Large 10029555.985715888 ns/iter 9041686.298701279 ns/iter 1.11
JSONL_Parse_Large_GZIP 11602755.149999667 ns/iter 10739633.815385858 ns/iter 1.08
HTML_Build_Table_100000 68710690.00001171 ns/iter 72846439.19999781 ns/iter 0.94
HTML_Render_Table_100000 5058921.941605668 ns/iter 5175078.656716764 ns/iter 0.98
GZIP_Compress_ISO_Language_Set_3_Locations 32618634.952379063 ns/iter 35415362.3000002 ns/iter 0.92
GZIP_Decompress_ISO_Language_Set_3_Locations 3897629.494253093 ns/iter 4283044.835366437 ns/iter 0.91
GZIP_Compress_ISO_Language_Set_3_Schema 1880651.9892476194 ns/iter 2127598.4954406195 ns/iter 0.88
GZIP_Decompress_ISO_Language_Set_3_Schema 354072.54126582725 ns/iter 276877.409901002 ns/iter 1.28
JOSE_VerifySignature_RS256 58058.90562913384 ns/iter 63804.95593189496 ns/iter 0.91
JOSE_VerifySignature_ES512 2475980.8085102756 ns/iter 2662052.8707222487 ns/iter 0.93

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 1c13a82 into main Jun 24, 2026
12 checks passed
@jviotti jviotti deleted the more-text branch June 24, 2026 01:24

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 62be144 Previous: a39f279 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.088732000003802 ns/iter 5.00654299999951 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.010805357138842 ns/iter 4.958966964287421 ns/iter 1.01
Regex_Period_Asterisk 5.022068999996918 ns/iter 4.95259553572071 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 5.015597000001435 ns/iter 4.953372321429989 ns/iter 1.01
Regex_Period_Plus 4.784970402854455 ns/iter 4.599565858480811 ns/iter 1.04
Regex_Period 4.782226349957929 ns/iter 4.597655457462644 ns/iter 1.04
Regex_Caret_Period_Plus_Dollar 4.770849999999882 ns/iter 4.604079251353382 ns/iter 1.04
Regex_Caret_Group_Period_Plus_Group_Dollar 4.78518352785365 ns/iter 4.604678894944593 ns/iter 1.04
Regex_Caret_Period_Asterisk_Dollar 5.0215750000006665 ns/iter 4.951364000007743 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.018918000005215 ns/iter 4.956235000008746 ns/iter 1.01
Regex_Caret_X_Hyphen 8.24584375000167 ns/iter 7.797537946428536 ns/iter 1.06
Regex_Period_Md_Dollar 44.39445962424017 ns/iter 57.4667410714775 ns/iter 0.77
Regex_Caret_Slash_Period_Asterisk 7.842063616071267 ns/iter 7.429712053570776 ns/iter 1.06
Regex_Caret_Period_Range_Dollar 5.961572321431114 ns/iter 5.326689000003171 ns/iter 1.12
Regex_Nested_Backtrack 53.3776874999603 ns/iter 67.53055357145448 ns/iter 0.79
JSON_Array_Of_Objects_Unique 500.7897099974321 ns/iter 517.6682999999684 ns/iter 0.97
JSON_Parse_1 8739.54357346398 ns/iter 9221.65749260216 ns/iter 0.95
JSON_Parse_Real 16012.265624993914 ns/iter 16429.17965968181 ns/iter 0.97
JSON_Parse_Decimal 11808.623437502774 ns/iter 11216.732812499686 ns/iter 1.05
JSON_Parse_Schema_ISO_Language 7741226.666672042 ns/iter 7602439.999997538 ns/iter 1.02
JSON_Parse_Integer 6111.196428564978 ns/iter 5931.86964286068 ns/iter 1.03
JSON_Parse_String_NonSSO_Plain 8418.030133928563 ns/iter 7829.681919641222 ns/iter 1.08
JSON_Parse_String_SSO_Plain 3717.424611741103 ns/iter 3635.443544868003 ns/iter 1.02
JSON_Parse_String_Escape_Heavy 22377.646874986112 ns/iter 21305.823805947894 ns/iter 1.05
JSON_Parse_Object_Short_Keys 13172.907710235144 ns/iter 13105.22118204024 ns/iter 1.01
JSON_Parse_Object_Scalar_Properties 6767.22656250612 ns/iter 6795.920758934569 ns/iter 1.00
JSON_Parse_Object_Array_Properties 11282.433928564777 ns/iter 11534.682142853724 ns/iter 0.98
JSON_Parse_Object_Object_Properties 11496.690624994699 ns/iter 11686.253571432255 ns/iter 0.98
JSON_Parse_Nested_Containers 78551.04910723704 ns/iter 82877.91294644566 ns/iter 0.95
JSON_From_String_Copy 64.14496428573914 ns/iter 63.377812500026 ns/iter 1.01
JSON_From_String_Temporary 57.93715178575504 ns/iter 84.8427343750505 ns/iter 0.68
JSON_Number_To_Double 118.8341785715303 ns/iter 137.5170357143166 ns/iter 0.86
JSON_Object_At_Last_Key/8 7.234021205348995 ns/iter 7.547902901785212 ns/iter 0.96
JSON_Object_At_Last_Key/32 23.28998076684127 ns/iter 24.933835714266802 ns/iter 0.93
JSON_Object_At_Last_Key/128 89.38333529544282 ns/iter 95.20041539287654 ns/iter 0.94
JSON_Object_At_Last_Key/512 417.7329277795816 ns/iter 429.067613917052 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 65.73168749996837 ns/iter 71.4770758928499 ns/iter 0.92
JSON_Equality_Helm_Chart_Lock 299.65384378868106 ns/iter 282.1742150816643 ns/iter 1.06
JSON_Divisible_By_Decimal 300.2865937371227 ns/iter 367.40499242783255 ns/iter 0.82
JSON_String_Equal/10 15.097126271888873 ns/iter 14.180114668835534 ns/iter 1.06
JSON_String_Equal/100 16.321785714288648 ns/iter 16.135548775872884 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5121407142868133 ns/iter 2.1231253124994964 ns/iter 1.18
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.189176945593768 ns/iter 15.556743303579065 ns/iter 0.91
JSON_String_Fast_Hash/10 4.700179697995164 ns/iter 4.615087510301039 ns/iter 1.02
JSON_String_Fast_Hash/100 4.707234385505662 ns/iter 4.742873448084076 ns/iter 0.99
JSON_String_Key_Hash/10 5.3459620000012364 ns/iter 4.957390178576913 ns/iter 1.08
JSON_String_Key_Hash/100 11.874837499996309 ns/iter 10.954956250003534 ns/iter 1.08
JSON_Object_Defines_Miss_Same_Length 4.0952659803180556 ns/iter 3.938032366071249 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Small 5.021495535718908 ns/iter 5.03443800000241 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.400803125002994 ns/iter 4.409742453386326 ns/iter 1.00
Pointer_Object_Traverse 70.04121651793379 ns/iter 69.708741071476 ns/iter 1.00
Pointer_Object_Try_Traverse 71.02083035712374 ns/iter 68.28747999998086 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 182.9834899317702 ns/iter 159.3019642858248 ns/iter 1.15
Pointer_Walker_Schema_ISO_Language 8530450.000004444 ns/iter 8554427.77777474 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 2402130.3030325947 ns/iter 2406493.2142859367 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 3690131.5508005996 ns/iter 3646500.000001815 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 535.240267857619 ns/iter 560.4083475146632 ns/iter 0.96
URITemplateRouter_Create 41644.27168084295 ns/iter 40128.2107828695 ns/iter 1.04
URITemplateRouter_Match 233.10513023389478 ns/iter 223.26727418900217 ns/iter 1.04
URITemplateRouter_Match_BasePath 264.3569180514762 ns/iter 248.95314285718734 ns/iter 1.06
URITemplateRouterView_Restore 30871.49107143107 ns/iter 24288.91785715288 ns/iter 1.27
URITemplateRouterView_Match 179.02796241314445 ns/iter 173.27930401402935 ns/iter 1.03
URITemplateRouterView_Match_BasePath 204.265843749738 ns/iter 197.11357117084063 ns/iter 1.04
URITemplateRouterView_Arguments 531.1518750001402 ns/iter 589.1806249995365 ns/iter 0.90
JSONL_Parse_Large 32712071.428553216 ns/iter 32555347.61904398 ns/iter 1.00
JSONL_Parse_Large_GZIP 33389733.33332736 ns/iter 33093252.38093325 ns/iter 1.01
HTML_Build_Table_100000 87373185.71417876 ns/iter 91795271.42857425 ns/iter 0.95
HTML_Render_Table_100000 7143644.642854139 ns/iter 8622276.666675236 ns/iter 0.83
GZIP_Compress_ISO_Language_Set_3_Locations 36401257.894747116 ns/iter 37739668.42106204 ns/iter 0.96
GZIP_Decompress_ISO_Language_Set_3_Locations 9426357.33333494 ns/iter 10597396.874999277 ns/iter 0.89
GZIP_Compress_ISO_Language_Set_3_Schema 2127572.4637682973 ns/iter 2278156.8749991264 ns/iter 0.93
GZIP_Decompress_ISO_Language_Set_3_Schema 607893.3035715701 ns/iter 596128.3928570538 ns/iter 1.02
JOSE_VerifySignature_RS256 21214.357843436163 ns/iter 23695.279070536744 ns/iter 0.90
JOSE_VerifySignature_ES512 1544365.848214316 ns/iter 1524053.7946437728 ns/iter 1.01

This comment was automatically generated by workflow using github-action-benchmark.

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