Fix I-Regexp deviances#2624
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR aligns the RFC 9485 I-Regexp implementation with the spec’s intended treatment of Changes:
Technical Notes: Whole-input matching for the strict dialect remains implemented via 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
All reported issues were addressed across 4 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: dbdaa90 | Previous: fb05d59 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.7464344115606567 ns/iter |
1.9693237641074997 ns/iter |
0.89 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.1340769379934152 ns/iter |
1.9300113399367222 ns/iter |
1.11 |
Regex_Period_Asterisk |
1.728319533214822 ns/iter |
1.8285141269273373 ns/iter |
0.95 |
Regex_Group_Period_Asterisk_Group |
1.736256184675153 ns/iter |
1.906898126244776 ns/iter |
0.91 |
Regex_Period_Plus |
2.0758767045416437 ns/iter |
2.7829634732630986 ns/iter |
0.75 |
Regex_Period |
2.076251840544673 ns/iter |
2.7399904260060386 ns/iter |
0.76 |
Regex_Caret_Period_Plus_Dollar |
2.0602283661951377 ns/iter |
3.653516667504216 ns/iter |
0.56 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.205569988102535 ns/iter |
2.1512418585555495 ns/iter |
1.03 |
Regex_Caret_Period_Asterisk_Dollar |
1.9337858095780078 ns/iter |
1.8737981418508403 ns/iter |
1.03 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.8526251499104656 ns/iter |
1.9171036784072732 ns/iter |
0.97 |
Regex_Caret_X_Hyphen |
6.212803920053886 ns/iter |
7.149044661501382 ns/iter |
0.87 |
Regex_Period_Md_Dollar |
18.42313839094708 ns/iter |
18.853587282207855 ns/iter |
0.98 |
Regex_Caret_Slash_Period_Asterisk |
4.817567308161833 ns/iter |
4.481994980543286 ns/iter |
1.07 |
Regex_Caret_Period_Range_Dollar |
2.0841146889317193 ns/iter |
2.048286185395188 ns/iter |
1.02 |
Regex_Nested_Backtrack |
26.887729461634166 ns/iter |
27.100981866928873 ns/iter |
0.99 |
JSON_Array_Of_Objects_Unique |
388.25316698776 ns/iter |
352.3876906958163 ns/iter |
1.10 |
JSON_Parse_1 |
3723.7339209159986 ns/iter |
6501.521151373025 ns/iter |
0.57 |
JSON_Parse_Real |
5343.622804249906 ns/iter |
8605.163716813915 ns/iter |
0.62 |
JSON_Parse_Decimal |
5775.540025413487 ns/iter |
8827.662621078394 ns/iter |
0.65 |
JSON_Parse_Schema_ISO_Language |
3606169.5478720334 ns/iter |
4108898.2088608705 ns/iter |
0.88 |
JSON_Parse_Integer |
3381.7209061280246 ns/iter |
4639.0740777762085 ns/iter |
0.73 |
JSON_Parse_String_NonSSO_Plain |
3778.0906179081526 ns/iter |
7582.591310640071 ns/iter |
0.50 |
JSON_Parse_String_SSO_Plain |
1819.3288050939163 ns/iter |
2836.7277926735783 ns/iter |
0.64 |
JSON_Parse_String_Escape_Heavy |
16650.180808200003 ns/iter |
21735.27787741924 ns/iter |
0.77 |
JSON_Parse_Object_Short_Keys |
5357.588810171164 ns/iter |
8966.2829142905 ns/iter |
0.60 |
JSON_Parse_Object_Scalar_Properties |
2856.2688727752966 ns/iter |
4976.527945644156 ns/iter |
0.57 |
JSON_Parse_Object_Array_Properties |
4028.0327254950657 ns/iter |
13497.352248121353 ns/iter |
0.30 |
JSON_Parse_Object_Object_Properties |
3692.4215995180193 ns/iter |
7646.390382751019 ns/iter |
0.48 |
JSON_Parse_Nested_Containers |
28322.24514017918 ns/iter |
74156.24999999943 ns/iter |
0.38 |
JSON_From_String_Copy |
24.948574512585992 ns/iter |
30.467607394723412 ns/iter |
0.82 |
JSON_From_String_Temporary |
21.65913487697814 ns/iter |
22.23141671283136 ns/iter |
0.97 |
JSON_Number_To_Double |
33.846533013491225 ns/iter |
41.75733283241668 ns/iter |
0.81 |
JSON_Object_At_Last_Key/8 |
4.236869827448455 ns/iter |
5.207059580000077 ns/iter |
0.81 |
JSON_Object_At_Last_Key/32 |
12.400467796164234 ns/iter |
14.143152055578675 ns/iter |
0.88 |
JSON_Object_At_Last_Key/128 |
55.35947244385835 ns/iter |
64.95175386628868 ns/iter |
0.85 |
JSON_Object_At_Last_Key/512 |
190.7481296227384 ns/iter |
207.25163135673128 ns/iter |
0.92 |
JSON_Fast_Hash_Helm_Chart_Lock |
59.494365720529366 ns/iter |
60.60736740947967 ns/iter |
0.98 |
JSON_Equality_Helm_Chart_Lock |
141.73790781692315 ns/iter |
152.17202377841312 ns/iter |
0.93 |
JSON_Divisible_By_Decimal |
192.41723840678148 ns/iter |
184.73810941054893 ns/iter |
1.04 |
JSON_String_Equal/10 |
6.849892413811042 ns/iter |
6.835423147609358 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.571050425865539 ns/iter |
6.448746287229892 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7626098453522845 ns/iter |
0.3488762386737897 ns/iter |
2.19 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.3841049826360514 ns/iter |
3.2528761359169347 ns/iter |
1.04 |
JSON_String_Fast_Hash/10 |
2.3642509002077974 ns/iter |
2.372764754578207 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.0781155134214826 ns/iter |
2.0440627329662386 ns/iter |
1.02 |
JSON_String_Key_Hash/10 |
1.3476128062295083 ns/iter |
1.7737349866781853 ns/iter |
0.76 |
JSON_String_Key_Hash/100 |
2.228827466911107 ns/iter |
2.153406343426162 ns/iter |
1.04 |
JSON_Object_Defines_Miss_Same_Length |
2.799770450655787 ns/iter |
2.7325415706519762 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
2.738891428032441 ns/iter |
2.742022554489243 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.052885148678079 ns/iter |
2.725539118990393 ns/iter |
1.12 |
Pointer_Object_Traverse |
19.668074379314753 ns/iter |
23.95494089216502 ns/iter |
0.82 |
Pointer_Object_Try_Traverse |
27.53267572153316 ns/iter |
24.351008646829484 ns/iter |
1.13 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
154.878782890975 ns/iter |
183.47061875827146 ns/iter |
0.84 |
Pointer_Walker_Schema_ISO_Language |
4066637.16831692 ns/iter |
3389497.6580089177 ns/iter |
1.20 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1029526.068783097 ns/iter |
1349624.4211438135 ns/iter |
0.76 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1326837.679702043 ns/iter |
1115661.9397162967 ns/iter |
1.19 |
Pointer_Position_Tracker_Get_Deeply_Nested |
402.7168758924638 ns/iter |
395.6109677096304 ns/iter |
1.02 |
URITemplateRouter_Create |
23512.465967017568 ns/iter |
25326.88007783238 ns/iter |
0.93 |
URITemplateRouter_Match |
186.0658943964045 ns/iter |
186.83476056912025 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
198.09509338047755 ns/iter |
217.4598869208699 ns/iter |
0.91 |
URITemplateRouterView_Restore |
10458.959512862413 ns/iter |
12022.734890318374 ns/iter |
0.87 |
URITemplateRouterView_Match |
134.58447283767597 ns/iter |
146.77765603674408 ns/iter |
0.92 |
URITemplateRouterView_Match_BasePath |
154.9149949235388 ns/iter |
160.92490438032917 ns/iter |
0.96 |
URITemplateRouterView_Arguments |
414.814965182204 ns/iter |
559.3849382591806 ns/iter |
0.74 |
JSONL_Parse_Large |
12970269.296296785 ns/iter |
11859627.737704448 ns/iter |
1.09 |
JSONL_Parse_Large_GZIP |
13957857.01960868 ns/iter |
11338184.016667204 ns/iter |
1.23 |
JSONLD_Catalog_Annotation_List_Populate |
1017215.8826087756 ns/iter |
878282.599999939 ns/iter |
1.16 |
JSONLD_Catalog_Materialize |
3178784.106976732 ns/iter |
4602973.557692207 ns/iter |
0.69 |
HTML_Build_Table_100000 |
65643791.69999484 ns/iter |
37347125.00000258 ns/iter |
1.76 |
HTML_Render_Table_100000 |
3414355.5555557567 ns/iter |
1736452.473958335 ns/iter |
1.97 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27230744.999997117 ns/iter |
26300336.40740816 ns/iter |
1.04 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
6148618.110236972 ns/iter |
3168159.502262713 ns/iter |
1.94 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1608372.9016017823 ns/iter |
1534711.0133036682 ns/iter |
1.05 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
288140.25943968596 ns/iter |
277600.17906885303 ns/iter |
1.04 |
JOSE_VerifySignature_RS256 |
25116.54790626378 ns/iter |
22896.612310647462 ns/iter |
1.10 |
JOSE_VerifySignature_ES512 |
992380.7529070126 ns/iter |
1128739.0525478206 ns/iter |
0.88 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: dbdaa90 | Previous: fb05d59 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22267.785012362754 ns/iter |
22362.58819972563 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
576149.0123456119 ns/iter |
576863.09818483 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36770436.789472684 ns/iter |
36263283.78946877 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4082752.1812862386 ns/iter |
4168008.4940474043 ns/iter |
0.98 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2060186.2382353803 ns/iter |
2008545.284482629 ns/iter |
1.03 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
375224.07618021354 ns/iter |
375553.9136265877 ns/iter |
1.00 |
HTML_Build_Table_100000 |
59059599.999992914 ns/iter |
59527101.166670114 ns/iter |
0.99 |
HTML_Render_Table_100000 |
1929045.7929157391 ns/iter |
1935573.3111110693 ns/iter |
1.00 |
JSONLD_Catalog_Annotation_List_Populate |
1331479.4491361768 ns/iter |
1339867.7134616193 ns/iter |
0.99 |
JSONLD_Catalog_Materialize |
6539840.788990943 ns/iter |
6559542.879629092 ns/iter |
1.00 |
JSONL_Parse_Large |
13522277.230770476 ns/iter |
13369217.673075495 ns/iter |
1.01 |
JSONL_Parse_Large_GZIP |
14857665.02127688 ns/iter |
14740756.553191628 ns/iter |
1.01 |
URITemplateRouter_Create |
30165.233086589164 ns/iter |
29625.315495818013 ns/iter |
1.02 |
URITemplateRouter_Match |
154.71495941723026 ns/iter |
156.48837822365076 ns/iter |
0.99 |
URITemplateRouter_Match_BasePath |
181.34028334932864 ns/iter |
181.03385336897216 ns/iter |
1.00 |
URITemplateRouterView_Restore |
8679.854077826687 ns/iter |
8307.811616125058 ns/iter |
1.04 |
URITemplateRouterView_Match |
126.04612813715717 ns/iter |
125.38254511091624 ns/iter |
1.01 |
URITemplateRouterView_Match_BasePath |
143.25160832274273 ns/iter |
142.33120487487616 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
469.3712705494535 ns/iter |
478.79646280099945 ns/iter |
0.98 |
Pointer_Object_Traverse |
30.41527924170496 ns/iter |
30.473079647666786 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
22.72999631044602 ns/iter |
22.701422056835742 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
155.84359555391865 ns/iter |
163.4646940634121 ns/iter |
0.95 |
Pointer_Walker_Schema_ISO_Language |
2645497.999999851 ns/iter |
2695405.392307748 ns/iter |
0.98 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1821119.606299226 ns/iter |
1815103.7710526309 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1707358.4229830534 ns/iter |
1707656.0390242643 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
557.2070719560762 ns/iter |
512.0740404535253 ns/iter |
1.09 |
JSON_Array_Of_Objects_Unique |
445.4813511602486 ns/iter |
443.2961374320017 ns/iter |
1.00 |
JSON_Parse_1 |
9460.286014777985 ns/iter |
9393.236690665888 ns/iter |
1.01 |
JSON_Parse_Real |
7479.737123536201 ns/iter |
7735.7679257784 ns/iter |
0.97 |
JSON_Parse_Decimal |
12574.718498418266 ns/iter |
12541.359577180485 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
6504664.333333578 ns/iter |
6565178.915887916 ns/iter |
0.99 |
JSON_Parse_Integer |
5782.15839231951 ns/iter |
5769.626584314216 ns/iter |
1.00 |
JSON_Parse_String_NonSSO_Plain |
11918.21934750502 ns/iter |
12071.520246478376 ns/iter |
0.99 |
JSON_Parse_String_SSO_Plain |
5011.680139642791 ns/iter |
5241.452363750022 ns/iter |
0.96 |
JSON_Parse_String_Escape_Heavy |
25808.917438300097 ns/iter |
26186.947681156016 ns/iter |
0.99 |
JSON_Parse_Object_Short_Keys |
13320.386821557626 ns/iter |
13365.66257257182 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
6805.933186262624 ns/iter |
6924.956327042307 ns/iter |
0.98 |
JSON_Parse_Object_Array_Properties |
11421.325729658503 ns/iter |
11561.444459163586 ns/iter |
0.99 |
JSON_Parse_Object_Object_Properties |
11435.49946215546 ns/iter |
11475.742008007404 ns/iter |
1.00 |
JSON_Parse_Nested_Containers |
96695.24996533738 ns/iter |
95674.86328872114 ns/iter |
1.01 |
JSON_From_String_Copy |
17.455886674769765 ns/iter |
17.467377436846 ns/iter |
1.00 |
JSON_From_String_Temporary |
15.11887761123164 ns/iter |
15.11151017346576 ns/iter |
1.00 |
JSON_Number_To_Double |
20.89622932271154 ns/iter |
20.879596521378947 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
5.923863225586823 ns/iter |
5.797186337454884 ns/iter |
1.02 |
JSON_Object_At_Last_Key/32 |
21.835892162325006 ns/iter |
21.830964978300592 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
87.20889316316298 ns/iter |
88.20044059145376 ns/iter |
0.99 |
JSON_Object_At_Last_Key/512 |
402.74201484515316 ns/iter |
400.2110631487693 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.24351784184077 ns/iter |
61.090794754266135 ns/iter |
1.02 |
JSON_Equality_Helm_Chart_Lock |
164.34632687779106 ns/iter |
166.956285522801 ns/iter |
0.98 |
JSON_Divisible_By_Decimal |
244.5344466664083 ns/iter |
244.17129265670917 ns/iter |
1.00 |
JSON_String_Equal/10 |
6.034430416667135 ns/iter |
6.037667594383806 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.6629589683422275 ns/iter |
6.6633234231816445 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7395305946337286 ns/iter |
0.7402864429415318 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.21159027122406 ns/iter |
25.181719836269068 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.260408556656727 ns/iter |
2.263691134411178 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.261610219438178 ns/iter |
2.262012814005391 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.2462040068320601 ns/iter |
1.2540249650919462 ns/iter |
0.99 |
JSON_String_Key_Hash/100 |
12.442965399278968 ns/iter |
12.437626059884085 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.112418769977938 ns/iter |
3.1142721997591982 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.1126672805390068 ns/iter |
3.1142709939584052 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.422450967796199 ns/iter |
3.423159739812719 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.6228069590273698 ns/iter |
0.6225277139923419 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9340358359829473 ns/iter |
0.9340774431535555 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.6231110453796833 ns/iter |
0.622786956681573 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.9386096075142747 ns/iter |
0.9336560192782278 ns/iter |
1.01 |
Regex_Period_Plus |
0.6225606836216723 ns/iter |
0.62319988718175 ns/iter |
1.00 |
Regex_Period |
0.9341849449437262 ns/iter |
0.9345305993221916 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6229347691166424 ns/iter |
0.6262584366595612 ns/iter |
0.99 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.9343604268825507 ns/iter |
0.9339945412593293 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.6231248128727113 ns/iter |
0.6225104728368049 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9340983406256956 ns/iter |
0.9342664765210418 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
3.737787451648346 ns/iter |
3.738628892465511 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
32.62754222128453 ns/iter |
28.633213455407457 ns/iter |
1.14 |
Regex_Caret_Slash_Period_Asterisk |
4.044233315206369 ns/iter |
4.04407635032921 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
1.5569650051323891 ns/iter |
1.5564950490126916 ns/iter |
1.00 |
Regex_Nested_Backtrack |
42.64185130604206 ns/iter |
40.053388516150534 ns/iter |
1.06 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: dbdaa90 | Previous: af1b297 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.500836003643137 ns/iter |
2.196737339619877 ns/iter |
1.14 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.4970159237798715 ns/iter |
2.182734856286784 ns/iter |
1.14 |
Regex_Period_Asterisk |
2.804736777776315 ns/iter |
2.4585583289218014 ns/iter |
1.14 |
Regex_Group_Period_Asterisk_Group |
2.8059373609836844 ns/iter |
2.454872086301719 ns/iter |
1.14 |
Regex_Period_Plus |
3.116247800639556 ns/iter |
3.273039690570853 ns/iter |
0.95 |
Regex_Period |
3.116025741462657 ns/iter |
3.2752223154723574 ns/iter |
0.95 |
Regex_Caret_Period_Plus_Dollar |
3.1757616881005077 ns/iter |
3.5502059787237776 ns/iter |
0.89 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.1167553940945 ns/iter |
3.5480007167100496 ns/iter |
0.88 |
Regex_Caret_Period_Asterisk_Dollar |
2.493795906064359 ns/iter |
2.4627321581563826 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.4913797177420918 ns/iter |
2.4604938688058957 ns/iter |
1.01 |
Regex_Caret_X_Hyphen |
7.311341078352568 ns/iter |
6.010228045210963 ns/iter |
1.22 |
Regex_Period_Md_Dollar |
27.95125141566346 ns/iter |
20.484079535627707 ns/iter |
1.36 |
Regex_Caret_Slash_Period_Asterisk |
6.541788397133692 ns/iter |
5.73522432059186 ns/iter |
1.14 |
Regex_Caret_Period_Range_Dollar |
4.35922913357725 ns/iter |
2.45499208993446 ns/iter |
1.78 |
Regex_Nested_Backtrack |
38.28350613619494 ns/iter |
29.934592762167348 ns/iter |
1.28 |
JSON_Array_Of_Objects_Unique |
407.29006935803653 ns/iter |
324.0204782616417 ns/iter |
1.26 |
JSON_Parse_1 |
5021.39307861444 ns/iter |
3698.8916338153376 ns/iter |
1.36 |
JSON_Parse_Real |
5420.072237927649 ns/iter |
4061.3648307524295 ns/iter |
1.33 |
JSON_Parse_Decimal |
7511.6236227546115 ns/iter |
6716.554996019025 ns/iter |
1.12 |
JSON_Parse_Schema_ISO_Language |
3673886.7015706166 ns/iter |
2914005.851851942 ns/iter |
1.26 |
JSON_Parse_Integer |
3853.5400753273507 ns/iter |
3038.6032992899495 ns/iter |
1.27 |
JSON_Parse_String_NonSSO_Plain |
5114.723356538746 ns/iter |
3917.450641173127 ns/iter |
1.31 |
JSON_Parse_String_SSO_Plain |
2837.4853816697337 ns/iter |
2275.1798313593185 ns/iter |
1.25 |
JSON_Parse_String_Escape_Heavy |
14373.706904945995 ns/iter |
11701.304651513694 ns/iter |
1.23 |
JSON_Parse_Object_Short_Keys |
8104.37827204036 ns/iter |
6500.707458128851 ns/iter |
1.25 |
JSON_Parse_Object_Scalar_Properties |
4168.439948309412 ns/iter |
3336.9342850603116 ns/iter |
1.25 |
JSON_Parse_Object_Array_Properties |
6282.379537804745 ns/iter |
4756.913059470589 ns/iter |
1.32 |
JSON_Parse_Object_Object_Properties |
5430.036289832595 ns/iter |
4723.506961418596 ns/iter |
1.15 |
JSON_Parse_Nested_Containers |
46926.762949540906 ns/iter |
35335.77540213695 ns/iter |
1.33 |
JSON_From_String_Copy |
20.252629993856004 ns/iter |
18.28563241157559 ns/iter |
1.11 |
JSON_From_String_Temporary |
17.80373870217033 ns/iter |
16.133099535580193 ns/iter |
1.10 |
JSON_Number_To_Double |
24.501733826547017 ns/iter |
17.403790960456316 ns/iter |
1.41 |
JSON_Object_At_Last_Key/8 |
3.8276595353990053 ns/iter |
3.114735510676425 ns/iter |
1.23 |
JSON_Object_At_Last_Key/32 |
12.828829176943438 ns/iter |
10.17707287916053 ns/iter |
1.26 |
JSON_Object_At_Last_Key/128 |
48.87380004453558 ns/iter |
37.38627213052234 ns/iter |
1.31 |
JSON_Object_At_Last_Key/512 |
399.05096484395943 ns/iter |
286.22760715637884 ns/iter |
1.39 |
JSON_Fast_Hash_Helm_Chart_Lock |
57.96039640273302 ns/iter |
54.27242886291151 ns/iter |
1.07 |
JSON_Equality_Helm_Chart_Lock |
153.5519569450483 ns/iter |
122.23781408963434 ns/iter |
1.26 |
JSON_Divisible_By_Decimal |
260.4365254412728 ns/iter |
195.97431035797356 ns/iter |
1.33 |
JSON_String_Equal/10 |
6.021169467143033 ns/iter |
4.3672938314000005 ns/iter |
1.38 |
JSON_String_Equal/100 |
6.556499845782226 ns/iter |
5.188063911770155 ns/iter |
1.26 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9371455967947847 ns/iter |
0.8195408060083677 ns/iter |
1.14 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.93992812863435 ns/iter |
9.570923590082495 ns/iter |
1.56 |
JSON_String_Fast_Hash/10 |
2.511043593710335 ns/iter |
1.911657705173844 ns/iter |
1.31 |
JSON_String_Fast_Hash/100 |
2.4925512961566185 ns/iter |
1.9106217663600666 ns/iter |
1.30 |
JSON_String_Key_Hash/10 |
2.656493212865832 ns/iter |
1.9104143319040208 ns/iter |
1.39 |
JSON_String_Key_Hash/100 |
9.088321624881283 ns/iter |
6.002376057636688 ns/iter |
1.51 |
JSON_Object_Defines_Miss_Same_Length |
2.895666659587259 ns/iter |
2.3012647217280424 ns/iter |
1.26 |
JSON_Object_Defines_Miss_Too_Small |
2.6705858033433656 ns/iter |
2.2899465745061387 ns/iter |
1.17 |
JSON_Object_Defines_Miss_Too_Large |
3.4357950981786534 ns/iter |
3.2751954904995952 ns/iter |
1.05 |
Pointer_Object_Traverse |
29.248748278351336 ns/iter |
23.797011583247354 ns/iter |
1.23 |
Pointer_Object_Try_Traverse |
31.144359890776677 ns/iter |
25.59678396274033 ns/iter |
1.22 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
214.5439805271525 ns/iter |
151.88883617903423 ns/iter |
1.41 |
Pointer_Walker_Schema_ISO_Language |
2727994.3399207694 ns/iter |
2197996.074999864 ns/iter |
1.24 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1250040.0570410478 ns/iter |
1004276.9344978546 ns/iter |
1.24 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1626384.5860349168 ns/iter |
1351787.6737451705 ns/iter |
1.20 |
Pointer_Position_Tracker_Get_Deeply_Nested |
644.6215653539625 ns/iter |
571.606583319941 ns/iter |
1.13 |
URITemplateRouter_Create |
31646.10465956469 ns/iter |
23661.556856955256 ns/iter |
1.34 |
URITemplateRouter_Match |
172.1178891975107 ns/iter |
127.76269336407131 ns/iter |
1.35 |
URITemplateRouter_Match_BasePath |
198.58789676871282 ns/iter |
150.65284445728423 ns/iter |
1.32 |
URITemplateRouterView_Restore |
8542.69173791291 ns/iter |
7670.92674980541 ns/iter |
1.11 |
URITemplateRouterView_Match |
145.1231737976107 ns/iter |
108.00410604657414 ns/iter |
1.34 |
URITemplateRouterView_Match_BasePath |
163.63051366336026 ns/iter |
120.71325790124523 ns/iter |
1.36 |
URITemplateRouterView_Arguments |
439.9244763696983 ns/iter |
352.5074940072145 ns/iter |
1.25 |
JSONL_Parse_Large |
10091204.085714318 ns/iter |
7272751.9270839505 ns/iter |
1.39 |
JSONL_Parse_Large_GZIP |
11627266.950000605 ns/iter |
8590967.444445001 ns/iter |
1.35 |
JSONLD_Catalog_Annotation_List_Populate |
1263612.6763110745 ns/iter |
988905.4360794347 ns/iter |
1.28 |
JSONLD_Catalog_Materialize |
4875863.006451518 ns/iter |
3330247.2333335094 ns/iter |
1.46 |
HTML_Build_Table_100000 |
69045717.20000377 ns/iter |
52109707.15384415 ns/iter |
1.33 |
HTML_Render_Table_100000 |
5695067.9508196255 ns/iter |
4426500.961783273 ns/iter |
1.29 |
GZIP_Compress_ISO_Language_Set_3_Locations |
33059984.380954463 ns/iter |
27367606.50000091 ns/iter |
1.21 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4454434.647435881 ns/iter |
2914234.6317991256 ns/iter |
1.53 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1867986.735294198 ns/iter |
1623006.4513888676 ns/iter |
1.15 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
357026.44824069896 ns/iter |
195740.70095025777 ns/iter |
1.82 |
JOSE_VerifySignature_RS256 |
58040.13275506126 ns/iter |
50099.91900000159 ns/iter |
1.16 |
JOSE_VerifySignature_ES512 |
2378117.9795918786 ns/iter |
2183104.021874982 ns/iter |
1.09 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: dbdaa90 | Previous: fb05d59 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.0927020000017365 ns/iter |
5.026785626122178 ns/iter |
1.01 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.329559000001609 ns/iter |
5.333840178571287 ns/iter |
1.00 |
Regex_Period_Asterisk |
5.331693999999061 ns/iter |
5.321372321428645 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
5.33046099999865 ns/iter |
5.327848214286795 ns/iter |
1.00 |
Regex_Period_Plus |
5.333772999999837 ns/iter |
5.015804844870469 ns/iter |
1.06 |
Regex_Period |
5.016775670762743 ns/iter |
4.76950569302905 ns/iter |
1.05 |
Regex_Caret_Period_Plus_Dollar |
5.3287410000007185 ns/iter |
5.021018749999939 ns/iter |
1.06 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.118887000000996 ns/iter |
4.7684891974922925 ns/iter |
1.07 |
Regex_Caret_Period_Asterisk_Dollar |
5.015800999999556 ns/iter |
5.020481999999902 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.336018000000422 ns/iter |
5.324381000000358 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
8.180005580355397 ns/iter |
8.155329241069811 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
44.39240987149237 ns/iter |
44.88783732242996 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
8.168202008927189 ns/iter |
8.156283482142003 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
5.7671490000007 ns/iter |
5.649170535714835 ns/iter |
1.02 |
Regex_Nested_Backtrack |
58.11684821428084 ns/iter |
61.98855999998614 ns/iter |
0.94 |
JSON_Array_Of_Objects_Unique |
609.7484821428419 ns/iter |
604.9253000001045 ns/iter |
1.01 |
JSON_Parse_1 |
8815.57046620233 ns/iter |
8920.729371741294 ns/iter |
0.99 |
JSON_Parse_Real |
16216.215287154817 ns/iter |
16093.512902986731 ns/iter |
1.01 |
JSON_Parse_Decimal |
11873.809375000375 ns/iter |
12118.467187498538 ns/iter |
0.98 |
JSON_Parse_Schema_ISO_Language |
7508918.888889739 ns/iter |
7341742.222224133 ns/iter |
1.02 |
JSON_Parse_Integer |
6447.033035714509 ns/iter |
6080.676785714445 ns/iter |
1.06 |
JSON_Parse_String_NonSSO_Plain |
7949.274553570465 ns/iter |
7789.687499999738 ns/iter |
1.02 |
JSON_Parse_String_SSO_Plain |
3640.1528880850983 ns/iter |
3801.661247034164 ns/iter |
0.96 |
JSON_Parse_String_Escape_Heavy |
21688.406250000015 ns/iter |
22395.309375006887 ns/iter |
0.97 |
JSON_Parse_Object_Short_Keys |
13523.262500001465 ns/iter |
13555.567857139293 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
6929.40178571482 ns/iter |
6856.4071428584475 ns/iter |
1.01 |
JSON_Parse_Object_Array_Properties |
11427.715625000445 ns/iter |
11388.756249999687 ns/iter |
1.00 |
JSON_Parse_Object_Object_Properties |
11598.84843750092 ns/iter |
11563.743750002686 ns/iter |
1.00 |
JSON_Parse_Nested_Containers |
79960.8705357256 ns/iter |
80132.81249998577 ns/iter |
1.00 |
JSON_From_String_Copy |
63.696062500002064 ns/iter |
64.22086607141101 ns/iter |
0.99 |
JSON_From_String_Temporary |
59.56908928571433 ns/iter |
59.14595535713829 ns/iter |
1.01 |
JSON_Number_To_Double |
122.3522500000383 ns/iter |
120.98881250000915 ns/iter |
1.01 |
JSON_Object_At_Last_Key/8 |
7.264399107143049 ns/iter |
7.299218749999678 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
23.037116930386524 ns/iter |
23.072474999999315 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
88.97039334952157 ns/iter |
90.82210308830966 ns/iter |
0.98 |
JSON_Object_At_Last_Key/512 |
419.3658482142735 ns/iter |
416.28226713021 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
105.36621875001373 ns/iter |
104.75371874999695 ns/iter |
1.01 |
JSON_Equality_Helm_Chart_Lock |
227.13462500000503 ns/iter |
212.90103124997017 ns/iter |
1.07 |
JSON_Divisible_By_Decimal |
301.92239264264776 ns/iter |
295.62457191688964 ns/iter |
1.02 |
JSON_String_Equal/10 |
10.658318750000005 ns/iter |
10.676328124997525 ns/iter |
1.00 |
JSON_String_Equal/100 |
11.942521428571645 ns/iter |
12.043837500000011 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5071080111544317 ns/iter |
2.507012857142854 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.18577984738564 ns/iter |
15.040822031067302 ns/iter |
0.94 |
JSON_String_Fast_Hash/10 |
6.989989285713705 ns/iter |
6.898872321428939 ns/iter |
1.01 |
JSON_String_Fast_Hash/100 |
6.896957142856763 ns/iter |
6.898047991071062 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.337700000000041 ns/iter |
5.33077300000059 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
11.948923214284994 ns/iter |
11.873223214288535 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Same_Length |
4.150508703503457 ns/iter |
4.087815766228392 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
4.455882499999575 ns/iter |
4.3998353240183725 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
4.186174694975209 ns/iter |
4.086003891224848 ns/iter |
1.02 |
Pointer_Object_Traverse |
70.80011607143888 ns/iter |
67.17907142856916 ns/iter |
1.05 |
Pointer_Object_Try_Traverse |
71.519178571415 ns/iter |
70.65269642857126 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
181.69516395279544 ns/iter |
165.93744191547424 ns/iter |
1.09 |
Pointer_Walker_Schema_ISO_Language |
11419245.312499272 ns/iter |
10304049.333332539 ns/iter |
1.11 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2413699.2857141388 ns/iter |
2372930.000000549 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3744004.812834126 ns/iter |
3657755.3846153673 ns/iter |
1.02 |
Pointer_Position_Tracker_Get_Deeply_Nested |
513.0221297200998 ns/iter |
532.4970535714409 ns/iter |
0.96 |
URITemplateRouter_Create |
41947.86355692587 ns/iter |
42020.509546746995 ns/iter |
1.00 |
URITemplateRouter_Match |
233.6236346402283 ns/iter |
232.36376870933225 ns/iter |
1.01 |
URITemplateRouter_Match_BasePath |
265.9360208006892 ns/iter |
264.72435333593495 ns/iter |
1.00 |
URITemplateRouterView_Restore |
33620.33469273022 ns/iter |
31429.772321435023 ns/iter |
1.07 |
URITemplateRouterView_Match |
181.92499838612474 ns/iter |
177.04186899832473 ns/iter |
1.03 |
URITemplateRouterView_Match_BasePath |
207.2642429793116 ns/iter |
202.43697756977963 ns/iter |
1.02 |
URITemplateRouterView_Arguments |
534.4179999999596 ns/iter |
538.1277678570281 ns/iter |
0.99 |
JSONL_Parse_Large |
32990399.999995306 ns/iter |
32495433.333332628 ns/iter |
1.02 |
JSONL_Parse_Large_GZIP |
33564905.000002906 ns/iter |
33376857.142857693 ns/iter |
1.01 |
JSONLD_Catalog_Annotation_List_Populate |
2719370.075757779 ns/iter |
2627009.848484966 ns/iter |
1.04 |
JSONLD_Catalog_Materialize |
8271404.000000378 ns/iter |
7856064.444445109 ns/iter |
1.05 |
HTML_Build_Table_100000 |
88740642.85711418 ns/iter |
90247799.99997787 ns/iter |
0.98 |
HTML_Render_Table_100000 |
7879209.821429153 ns/iter |
7955569.642857897 ns/iter |
0.99 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36813142.10526627 ns/iter |
36328733.33333464 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
10022701.562501624 ns/iter |
9937678.666668337 ns/iter |
1.01 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2108812.463767749 ns/iter |
2100080.625000089 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
640871.6071429614 ns/iter |
629142.9464285767 ns/iter |
1.02 |
JOSE_VerifySignature_RS256 |
21362.219171663055 ns/iter |
21493.093842492013 ns/iter |
0.99 |
JOSE_VerifySignature_ES512 |
1535739.9553569246 ns/iter |
1553259.3749999332 ns/iter |
0.99 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com