Various misc correctness fixes throughout the codebase#2598
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR applies a set of targeted correctness fixes across core parsing/encoding utilities, primarily addressing edge cases that could previously cause UB, out-of-bounds access, or spec-noncompliant acceptance. Changes:
Technical Notes: Adds focused tests covering trailing JSON content, integer overflow promotion, quantifier validation, HTTP-date case sensitivity, UTF-8 truncation safety, URI-template empty-value behavior, and YAML float range handling. 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
2 issues found across 23 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: 4872e82 | Previous: e6abd0a | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.7573656794409434 ns/iter |
1.6554248389409572 ns/iter |
1.06 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.0458050713975253 ns/iter |
1.6271248043111448 ns/iter |
1.26 |
Regex_Period_Asterisk |
1.650663724277785 ns/iter |
1.6482336068304781 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
1.6975163990855267 ns/iter |
1.583979650368851 ns/iter |
1.07 |
Regex_Period_Plus |
2.049980971361748 ns/iter |
1.9022040128727222 ns/iter |
1.08 |
Regex_Period |
2.0137156030923955 ns/iter |
1.941460837496758 ns/iter |
1.04 |
Regex_Caret_Period_Plus_Dollar |
2.0406007754672446 ns/iter |
1.942425808732202 ns/iter |
1.05 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.9662721944512447 ns/iter |
1.8829825072176833 ns/iter |
1.04 |
Regex_Caret_Period_Asterisk_Dollar |
1.7089687178058472 ns/iter |
1.5740362281739178 ns/iter |
1.09 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.7202238351132106 ns/iter |
1.57226019409202 ns/iter |
1.09 |
Regex_Caret_X_Hyphen |
5.880088988285812 ns/iter |
5.657157067822035 ns/iter |
1.04 |
Regex_Period_Md_Dollar |
17.389106088390434 ns/iter |
15.76885508260282 ns/iter |
1.10 |
Regex_Caret_Slash_Period_Asterisk |
4.235271837763638 ns/iter |
4.361504244638122 ns/iter |
0.97 |
Regex_Caret_Period_Range_Dollar |
2.0389996836042257 ns/iter |
1.907650879300913 ns/iter |
1.07 |
Regex_Nested_Backtrack |
24.14686697066755 ns/iter |
23.218906015938238 ns/iter |
1.04 |
JSON_Array_Of_Objects_Unique |
345.61808482792026 ns/iter |
315.63235633915843 ns/iter |
1.10 |
JSON_Parse_1 |
3612.8257610094806 ns/iter |
5073.867306537666 ns/iter |
0.71 |
JSON_Parse_Real |
5026.411670000925 ns/iter |
5813.8991293995705 ns/iter |
0.86 |
JSON_Parse_Decimal |
5778.670523006545 ns/iter |
6801.472524080591 ns/iter |
0.85 |
JSON_Parse_Schema_ISO_Language |
3021159.1928248876 ns/iter |
3098138.768240257 ns/iter |
0.98 |
JSON_Parse_Integer |
3094.680524069881 ns/iter |
3962.6315635807405 ns/iter |
0.78 |
JSON_Parse_String_NonSSO_Plain |
3567.0249401050864 ns/iter |
5169.264956817144 ns/iter |
0.69 |
JSON_Parse_String_SSO_Plain |
1697.0644486546908 ns/iter |
2151.3448295019143 ns/iter |
0.79 |
JSON_Parse_String_Escape_Heavy |
16428.258197988333 ns/iter |
17921.92366959409 ns/iter |
0.92 |
JSON_Parse_Object_Short_Keys |
5165.587893765171 ns/iter |
6563.844645395261 ns/iter |
0.79 |
JSON_Parse_Object_Scalar_Properties |
2689.216499219642 ns/iter |
3286.039111371313 ns/iter |
0.82 |
JSON_Parse_Object_Array_Properties |
3460.376048245156 ns/iter |
5028.146319044589 ns/iter |
0.69 |
JSON_Parse_Object_Object_Properties |
3443.1384061220747 ns/iter |
5191.3491780604345 ns/iter |
0.66 |
JSON_Parse_Nested_Containers |
28152.090393453072 ns/iter |
40893.62994483349 ns/iter |
0.69 |
JSON_From_String_Copy |
23.38547642490449 ns/iter |
22.018367986044364 ns/iter |
1.06 |
JSON_From_String_Temporary |
19.519927098332158 ns/iter |
17.729653665017725 ns/iter |
1.10 |
JSON_Number_To_Double |
33.31996120135197 ns/iter |
29.81961086432971 ns/iter |
1.12 |
JSON_Object_At_Last_Key/8 |
4.07872599727805 ns/iter |
3.4520605309183527 ns/iter |
1.18 |
JSON_Object_At_Last_Key/32 |
12.079595652172662 ns/iter |
11.004864404295178 ns/iter |
1.10 |
JSON_Object_At_Last_Key/128 |
53.652717035399725 ns/iter |
50.30316908064923 ns/iter |
1.07 |
JSON_Object_At_Last_Key/512 |
188.06250889992378 ns/iter |
181.40226076767422 ns/iter |
1.04 |
JSON_Fast_Hash_Helm_Chart_Lock |
61.1674497775287 ns/iter |
54.56030877722223 ns/iter |
1.12 |
JSON_Equality_Helm_Chart_Lock |
130.3147034612543 ns/iter |
124.48002487340237 ns/iter |
1.05 |
JSON_Divisible_By_Decimal |
174.64051524839613 ns/iter |
165.08395959849864 ns/iter |
1.06 |
JSON_String_Equal/10 |
6.578626191579446 ns/iter |
6.290286294822081 ns/iter |
1.05 |
JSON_String_Equal/100 |
6.342927429186961 ns/iter |
5.992226128104041 ns/iter |
1.06 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7785741379001042 ns/iter |
0.32092986225939146 ns/iter |
2.43 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.165848088283434 ns/iter |
3.0154552129767365 ns/iter |
1.05 |
JSON_String_Fast_Hash/10 |
2.4185925474718033 ns/iter |
2.2095696873754886 ns/iter |
1.09 |
JSON_String_Fast_Hash/100 |
1.9905713841546169 ns/iter |
1.8896558202386373 ns/iter |
1.05 |
JSON_String_Key_Hash/10 |
1.3419779592354946 ns/iter |
1.5702343897363924 ns/iter |
0.85 |
JSON_String_Key_Hash/100 |
2.156851772295349 ns/iter |
1.9435133921183048 ns/iter |
1.11 |
JSON_Object_Defines_Miss_Same_Length |
2.3185042537831393 ns/iter |
2.5843258194810748 ns/iter |
0.90 |
JSON_Object_Defines_Miss_Too_Small |
2.379529513372944 ns/iter |
2.5115905958721285 ns/iter |
0.95 |
JSON_Object_Defines_Miss_Too_Large |
2.297970117178111 ns/iter |
2.527394548347955 ns/iter |
0.91 |
Pointer_Object_Traverse |
13.794449792711932 ns/iter |
17.132057532609405 ns/iter |
0.81 |
Pointer_Object_Try_Traverse |
23.353805333013554 ns/iter |
16.54656104995878 ns/iter |
1.41 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
158.8014124258732 ns/iter |
151.30020863583692 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
2491933.6595743555 ns/iter |
1401787.819277051 ns/iter |
1.78 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
979362.9579375812 ns/iter |
935679.2730923517 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1379676.7418033946 ns/iter |
960817.3624510491 ns/iter |
1.44 |
Pointer_Position_Tracker_Get_Deeply_Nested |
356.9346845523741 ns/iter |
309.2066246989031 ns/iter |
1.15 |
URITemplateRouter_Create |
22094.32072308396 ns/iter |
21431.603411775577 ns/iter |
1.03 |
URITemplateRouter_Match |
163.8737329967594 ns/iter |
160.75831615355972 ns/iter |
1.02 |
URITemplateRouter_Match_BasePath |
190.0466920358362 ns/iter |
184.81509126905084 ns/iter |
1.03 |
URITemplateRouterView_Restore |
8995.547862454065 ns/iter |
9328.549725450715 ns/iter |
0.96 |
URITemplateRouterView_Match |
130.40245628125035 ns/iter |
127.75843162934224 ns/iter |
1.02 |
URITemplateRouterView_Match_BasePath |
144.8004977563447 ns/iter |
145.3887548401865 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
405.86536521386586 ns/iter |
512.9986331949275 ns/iter |
0.79 |
JSONL_Parse_Large |
12162061.403510928 ns/iter |
10626200.98529391 ns/iter |
1.14 |
JSONL_Parse_Large_GZIP |
12815235.124999648 ns/iter |
11054777.573529944 ns/iter |
1.16 |
HTML_Build_Table_100000 |
67844674.18180446 ns/iter |
33278055.571432084 ns/iter |
2.04 |
HTML_Render_Table_100000 |
2723174.678322352 ns/iter |
1426182.7192623434 ns/iter |
1.91 |
GZIP_Compress_ISO_Language_Set_3_Locations |
27073370.192309856 ns/iter |
24208877.9642862 ns/iter |
1.12 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
5760463.715516992 ns/iter |
2932899.159663937 ns/iter |
1.96 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1492070.825606969 ns/iter |
1492823.1474749453 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
275451.0555776234 ns/iter |
249692.25925929134 ns/iter |
1.10 |
JOSE_VerifySignature_RS256 |
20847.80547698047 ns/iter |
20370.82308914862 ns/iter |
1.02 |
JOSE_VerifySignature_ES512 |
981607.8629032085 ns/iter |
1039482.8130564023 ns/iter |
0.94 |
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: 4872e82 | Previous: e6abd0a | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22155.95179572288 ns/iter |
22517.225951804983 ns/iter |
0.98 |
JOSE_VerifySignature_ES512 |
579710.7099173566 ns/iter |
575827.7648026827 ns/iter |
1.01 |
GZIP_Compress_ISO_Language_Set_3_Locations |
44623334.1249993 ns/iter |
36658893.31579078 ns/iter |
1.22 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4516832.75974063 ns/iter |
4172601.660714225 ns/iter |
1.08 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2259556.048387191 ns/iter |
2043269.2982458773 ns/iter |
1.11 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
380142.70501635363 ns/iter |
380944.3208265164 ns/iter |
1.00 |
HTML_Build_Table_100000 |
61238038.72726926 ns/iter |
59085478.99999424 ns/iter |
1.04 |
HTML_Render_Table_100000 |
2088778.7091411091 ns/iter |
1767495.4025315405 ns/iter |
1.18 |
JSONL_Parse_Large |
13018415.61111048 ns/iter |
12829791.381816655 ns/iter |
1.01 |
JSONL_Parse_Large_GZIP |
14371357.571427992 ns/iter |
14271748.795919143 ns/iter |
1.01 |
URITemplateRouter_Create |
31376.911592321314 ns/iter |
30354.985219119404 ns/iter |
1.03 |
URITemplateRouter_Match |
149.46186765206593 ns/iter |
153.6877273553448 ns/iter |
0.97 |
URITemplateRouter_Match_BasePath |
170.08066236261055 ns/iter |
179.27373341232698 ns/iter |
0.95 |
URITemplateRouterView_Restore |
8367.242971792813 ns/iter |
8372.014218905926 ns/iter |
1.00 |
URITemplateRouterView_Match |
123.77679020155435 ns/iter |
124.03749067914336 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
144.1130289592876 ns/iter |
142.92875792528665 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
470.2899519794398 ns/iter |
472.77091499709155 ns/iter |
0.99 |
Pointer_Object_Traverse |
29.831742048114805 ns/iter |
29.970647584069297 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
22.459881155545343 ns/iter |
20.23997923054322 ns/iter |
1.11 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
158.44415604755721 ns/iter |
151.5332266909758 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
2395569.6174698183 ns/iter |
1842888.9236842773 ns/iter |
1.30 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1880936.3908356887 ns/iter |
1523132.0936819946 ns/iter |
1.23 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1704162.9829267126 ns/iter |
1657320.287735787 ns/iter |
1.03 |
Pointer_Position_Tracker_Get_Deeply_Nested |
525.1215373017117 ns/iter |
556.9940202688807 ns/iter |
0.94 |
JSON_Array_Of_Objects_Unique |
408.6520925223343 ns/iter |
394.5438349380314 ns/iter |
1.04 |
JSON_Parse_1 |
9605.07984843076 ns/iter |
7556.395105085075 ns/iter |
1.27 |
JSON_Parse_Real |
7791.769674067947 ns/iter |
6715.532996626337 ns/iter |
1.16 |
JSON_Parse_Decimal |
12539.026243339784 ns/iter |
11218.132745633317 ns/iter |
1.12 |
JSON_Parse_Schema_ISO_Language |
6440830.759260052 ns/iter |
5137408.882352943 ns/iter |
1.25 |
JSON_Parse_Integer |
6127.763526078804 ns/iter |
4856.591047657523 ns/iter |
1.26 |
JSON_Parse_String_NonSSO_Plain |
12060.790498845263 ns/iter |
8575.356818625856 ns/iter |
1.41 |
JSON_Parse_String_SSO_Plain |
4836.139718842035 ns/iter |
3907.1009368221266 ns/iter |
1.24 |
JSON_Parse_String_Escape_Heavy |
24228.141702794677 ns/iter |
21098.11022110318 ns/iter |
1.15 |
JSON_Parse_Object_Short_Keys |
14165.839787656927 ns/iter |
14007.964015832455 ns/iter |
1.01 |
JSON_Parse_Object_Scalar_Properties |
7244.694209348722 ns/iter |
5795.311058898094 ns/iter |
1.25 |
JSON_Parse_Object_Array_Properties |
12349.348990915834 ns/iter |
8897.671210690858 ns/iter |
1.39 |
JSON_Parse_Object_Object_Properties |
12697.479348342435 ns/iter |
9254.253385728865 ns/iter |
1.37 |
JSON_Parse_Nested_Containers |
99831.79264118093 ns/iter |
72869.9072197295 ns/iter |
1.37 |
JSON_From_String_Copy |
18.85970182195115 ns/iter |
18.23804085329915 ns/iter |
1.03 |
JSON_From_String_Temporary |
15.358614104742124 ns/iter |
15.445974826396768 ns/iter |
0.99 |
JSON_Number_To_Double |
20.5813748980065 ns/iter |
22.126480717957076 ns/iter |
0.93 |
JSON_Object_At_Last_Key/8 |
8.111293313666804 ns/iter |
5.920760639663848 ns/iter |
1.37 |
JSON_Object_At_Last_Key/32 |
31.474778925553057 ns/iter |
21.51589578625362 ns/iter |
1.46 |
JSON_Object_At_Last_Key/128 |
126.85222938218105 ns/iter |
87.24400655329859 ns/iter |
1.45 |
JSON_Object_At_Last_Key/512 |
520.064769628591 ns/iter |
425.7008760791529 ns/iter |
1.22 |
JSON_Fast_Hash_Helm_Chart_Lock |
69.17064013959295 ns/iter |
65.45673968249484 ns/iter |
1.06 |
JSON_Equality_Helm_Chart_Lock |
154.11713918984307 ns/iter |
157.15167266238262 ns/iter |
0.98 |
JSON_Divisible_By_Decimal |
247.6139524061965 ns/iter |
237.5234897871867 ns/iter |
1.04 |
JSON_String_Equal/10 |
5.6872740665822334 ns/iter |
6.353592734945065 ns/iter |
0.90 |
JSON_String_Equal/100 |
6.317826756455701 ns/iter |
6.975451470710402 ns/iter |
0.91 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.6233719724018338 ns/iter |
0.7525769134803659 ns/iter |
0.83 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.194454443797206 ns/iter |
25.193801157449766 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
1.259271972918875 ns/iter |
0.9334536981245901 ns/iter |
1.35 |
JSON_String_Fast_Hash/100 |
1.2464484044907838 ns/iter |
0.9345526362725529 ns/iter |
1.33 |
JSON_String_Key_Hash/10 |
1.247273525054044 ns/iter |
1.5589480094846724 ns/iter |
0.80 |
JSON_String_Key_Hash/100 |
12.444872136604632 ns/iter |
12.439374669269656 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.1142064812057746 ns/iter |
3.4251348626668086 ns/iter |
0.91 |
JSON_Object_Defines_Miss_Too_Small |
3.1152215272385413 ns/iter |
3.4335634515223434 ns/iter |
0.91 |
JSON_Object_Defines_Miss_Too_Large |
3.428576706253981 ns/iter |
3.1194934601032904 ns/iter |
1.10 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.9348852842563069 ns/iter |
0.6230594577941487 ns/iter |
1.50 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.6237684496255486 ns/iter |
0.623033229132352 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.623300623430078 ns/iter |
0.9342282151864186 ns/iter |
0.67 |
Regex_Group_Period_Asterisk_Group |
0.9340501686671001 ns/iter |
0.9389030420995528 ns/iter |
0.99 |
Regex_Period_Plus |
0.9346739860110138 ns/iter |
0.6231875263274763 ns/iter |
1.50 |
Regex_Period |
0.6275896245930632 ns/iter |
0.6250608272200736 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.6229769906087719 ns/iter |
0.9297528396667032 ns/iter |
0.67 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.9351657166104259 ns/iter |
0.9341882375809006 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.93448845151362 ns/iter |
0.6234877286902908 ns/iter |
1.50 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.6229442956864225 ns/iter |
0.6217068602282902 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
4.0504881763004805 ns/iter |
4.053700620096808 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
29.846611286701403 ns/iter |
29.061933510344016 ns/iter |
1.03 |
Regex_Caret_Slash_Period_Asterisk |
4.360852038003906 ns/iter |
4.670248956540023 ns/iter |
0.93 |
Regex_Caret_Period_Range_Dollar |
0.7785982609570659 ns/iter |
0.7789212589724555 ns/iter |
1.00 |
Regex_Nested_Backtrack |
41.175584595438224 ns/iter |
37.83609395584769 ns/iter |
1.09 |
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: 4872e82 | Previous: e6abd0a | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.1816401684335722 ns/iter |
2.5222223244182675 ns/iter |
1.26 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.814343524385684 ns/iter |
2.20109757095779 ns/iter |
1.28 |
Regex_Period_Asterisk |
2.813565499625195 ns/iter |
2.193114220809895 ns/iter |
1.28 |
Regex_Group_Period_Asterisk_Group |
3.1657353294445483 ns/iter |
2.4901738571081213 ns/iter |
1.27 |
Regex_Period_Plus |
4.608304427398709 ns/iter |
2.8005849531843636 ns/iter |
1.65 |
Regex_Period |
4.2212660618150855 ns/iter |
2.4957828687637575 ns/iter |
1.69 |
Regex_Caret_Period_Plus_Dollar |
4.220569045076416 ns/iter |
2.4897567045972413 ns/iter |
1.70 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.636584354931571 ns/iter |
2.8001497769263692 ns/iter |
1.66 |
Regex_Caret_Period_Asterisk_Dollar |
3.5337127684681744 ns/iter |
2.4945748031403703 ns/iter |
1.42 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.1657779028629403 ns/iter |
2.1941901122213046 ns/iter |
1.44 |
Regex_Caret_X_Hyphen |
7.3856640813335375 ns/iter |
5.295655756522157 ns/iter |
1.39 |
Regex_Period_Md_Dollar |
26.473704561699137 ns/iter |
28.743223317839654 ns/iter |
0.92 |
Regex_Caret_Slash_Period_Asterisk |
8.090134333602029 ns/iter |
5.926821203065366 ns/iter |
1.37 |
Regex_Caret_Period_Range_Dollar |
2.814197422531483 ns/iter |
2.493384392056651 ns/iter |
1.13 |
Regex_Nested_Backtrack |
37.27160266223672 ns/iter |
37.393602061375596 ns/iter |
1.00 |
JSON_Array_Of_Objects_Unique |
493.11514616565955 ns/iter |
450.9104434695392 ns/iter |
1.09 |
JSON_Parse_1 |
4781.408184922561 ns/iter |
4891.878078920682 ns/iter |
0.98 |
JSON_Parse_Real |
5006.701129999556 ns/iter |
5146.2904832176455 ns/iter |
0.97 |
JSON_Parse_Decimal |
7591.680897515844 ns/iter |
7606.400663507275 ns/iter |
1.00 |
JSON_Parse_Schema_ISO_Language |
3563995.8877549344 ns/iter |
3530258.515306347 ns/iter |
1.01 |
JSON_Parse_Integer |
3910.753410106864 ns/iter |
3740.8912003835853 ns/iter |
1.05 |
JSON_Parse_String_NonSSO_Plain |
5162.557355362416 ns/iter |
5176.2779633646205 ns/iter |
1.00 |
JSON_Parse_String_SSO_Plain |
3003.9074965423706 ns/iter |
2846.107637179884 ns/iter |
1.06 |
JSON_Parse_String_Escape_Heavy |
14554.438076827002 ns/iter |
14326.925057009243 ns/iter |
1.02 |
JSON_Parse_Object_Short_Keys |
7904.922213077713 ns/iter |
7931.116682584255 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
4071.9040208582596 ns/iter |
4026.396950324866 ns/iter |
1.01 |
JSON_Parse_Object_Array_Properties |
5559.706885620523 ns/iter |
5464.012631990323 ns/iter |
1.02 |
JSON_Parse_Object_Object_Properties |
5562.107391787618 ns/iter |
5449.915308256007 ns/iter |
1.02 |
JSON_Parse_Nested_Containers |
45544.66714688075 ns/iter |
45018.81602738424 ns/iter |
1.01 |
JSON_From_String_Copy |
22.892136640902944 ns/iter |
20.373157552688834 ns/iter |
1.12 |
JSON_From_String_Temporary |
19.174113451040803 ns/iter |
17.766348691149407 ns/iter |
1.08 |
JSON_Number_To_Double |
22.825950643520112 ns/iter |
23.37028090638092 ns/iter |
0.98 |
JSON_Object_At_Last_Key/8 |
3.6432811743835707 ns/iter |
3.761567769001144 ns/iter |
0.97 |
JSON_Object_At_Last_Key/32 |
13.003600876557725 ns/iter |
11.95415235449082 ns/iter |
1.09 |
JSON_Object_At_Last_Key/128 |
46.77469368215801 ns/iter |
48.253546084981835 ns/iter |
0.97 |
JSON_Object_At_Last_Key/512 |
365.9245278089797 ns/iter |
380.6074421234941 ns/iter |
0.96 |
JSON_Fast_Hash_Helm_Chart_Lock |
70.27928665566915 ns/iter |
70.23645562901083 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
173.06493465986352 ns/iter |
178.7609508910468 ns/iter |
0.97 |
JSON_Divisible_By_Decimal |
259.0305067098301 ns/iter |
243.57076932502778 ns/iter |
1.06 |
JSON_String_Equal/10 |
5.981672040812866 ns/iter |
6.250351275687407 ns/iter |
0.96 |
JSON_String_Equal/100 |
6.685427230135764 ns/iter |
6.856322161375527 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.0549717117663282 ns/iter |
0.934146360970065 ns/iter |
1.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.337356962556285 ns/iter |
10.576314306540699 ns/iter |
1.17 |
JSON_String_Fast_Hash/10 |
2.506904005248107 ns/iter |
2.8080077898791256 ns/iter |
0.89 |
JSON_String_Fast_Hash/100 |
2.4617915893386475 ns/iter |
2.799217500448752 ns/iter |
0.88 |
JSON_String_Key_Hash/10 |
2.461748403158092 ns/iter |
2.1791819137370623 ns/iter |
1.13 |
JSON_String_Key_Hash/100 |
8.107313334802058 ns/iter |
6.53622233225784 ns/iter |
1.24 |
JSON_Object_Defines_Miss_Same_Length |
2.9350220852835744 ns/iter |
2.6367031571935877 ns/iter |
1.11 |
JSON_Object_Defines_Miss_Too_Small |
4.221661277740077 ns/iter |
3.736488460323152 ns/iter |
1.13 |
JSON_Object_Defines_Miss_Too_Large |
2.9005221440104676 ns/iter |
2.6271982292234215 ns/iter |
1.10 |
Pointer_Object_Traverse |
25.50480805309944 ns/iter |
24.09772710866044 ns/iter |
1.06 |
Pointer_Object_Try_Traverse |
30.380694934522047 ns/iter |
30.18013880315902 ns/iter |
1.01 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
205.65667899908894 ns/iter |
179.6700034784165 ns/iter |
1.14 |
Pointer_Walker_Schema_ISO_Language |
1813250.6883115899 ns/iter |
1735539.3446601424 ns/iter |
1.04 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1269767.1819851852 ns/iter |
1262626.0573476371 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1579765.4885844865 ns/iter |
1617982.2378754572 ns/iter |
0.98 |
Pointer_Position_Tracker_Get_Deeply_Nested |
701.2822860745049 ns/iter |
698.566288509013 ns/iter |
1.00 |
URITemplateRouter_Create |
30019.452258528632 ns/iter |
34065.36967631673 ns/iter |
0.88 |
URITemplateRouter_Match |
179.92076807954567 ns/iter |
179.75491484986642 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
218.03617942675857 ns/iter |
208.10618931422727 ns/iter |
1.05 |
URITemplateRouterView_Restore |
9819.799417509761 ns/iter |
8615.978999617968 ns/iter |
1.14 |
URITemplateRouterView_Match |
143.59300472754336 ns/iter |
143.09358097283507 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
166.9211292521855 ns/iter |
162.73868803228578 ns/iter |
1.03 |
URITemplateRouterView_Arguments |
462.5832684077073 ns/iter |
434.13154843152665 ns/iter |
1.07 |
JSONL_Parse_Large |
9397527.108107526 ns/iter |
9763108.652776964 ns/iter |
0.96 |
JSONL_Parse_Large_GZIP |
11012700.000000209 ns/iter |
11339576.580643361 ns/iter |
0.97 |
HTML_Build_Table_100000 |
72370746.00000142 ns/iter |
66303654.7000047 ns/iter |
1.09 |
HTML_Render_Table_100000 |
4914443.840580068 ns/iter |
5178408.902985048 ns/iter |
0.95 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35948763.36841792 ns/iter |
32315778.90908904 ns/iter |
1.11 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4272378.840491185 ns/iter |
4096977.8070177985 ns/iter |
1.04 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2157979.3414637484 ns/iter |
1854448.3952256457 ns/iter |
1.16 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
276800.4059913286 ns/iter |
358446.26291561127 ns/iter |
0.77 |
JOSE_VerifySignature_RS256 |
65054.393454540164 ns/iter |
58557.34085985704 ns/iter |
1.11 |
JOSE_VerifySignature_ES512 |
2685386.4846154572 ns/iter |
2408444.652921242 ns/iter |
1.11 |
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: 4872e82 | Previous: e6abd0a | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.323734000000968 ns/iter |
3.86497552881283 ns/iter |
1.38 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.129010999999082 ns/iter |
3.9188392857144754 ns/iter |
1.31 |
Regex_Period_Asterisk |
5.18763035714187 ns/iter |
3.885396957347391 ns/iter |
1.34 |
Regex_Group_Period_Asterisk_Group |
5.070763392857153 ns/iter |
3.8872198660712596 ns/iter |
1.30 |
Regex_Period_Plus |
5.214258000000882 ns/iter |
3.6444352175200594 ns/iter |
1.43 |
Regex_Period |
5.0529848214284 ns/iter |
3.571783454240238 ns/iter |
1.41 |
Regex_Caret_Period_Plus_Dollar |
5.1456544642860536 ns/iter |
3.5720971372756622 ns/iter |
1.44 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.128078000000187 ns/iter |
3.564826467644195 ns/iter |
1.44 |
Regex_Caret_Period_Asterisk_Dollar |
5.143460714285603 ns/iter |
3.8399501717146256 ns/iter |
1.34 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.236070535713923 ns/iter |
3.85976463596481 ns/iter |
1.36 |
Regex_Caret_X_Hyphen |
8.23439843749948 ns/iter |
6.175786607143559 ns/iter |
1.33 |
Regex_Period_Md_Dollar |
44.43655719251833 ns/iter |
46.21293138696821 ns/iter |
0.96 |
Regex_Caret_Slash_Period_Asterisk |
7.872445312501039 ns/iter |
5.767548000000033 ns/iter |
1.36 |
Regex_Caret_Period_Range_Dollar |
5.671543750001515 ns/iter |
4.146438212434667 ns/iter |
1.37 |
Regex_Nested_Backtrack |
54.2985999999928 ns/iter |
51.24066071428298 ns/iter |
1.06 |
JSON_Array_Of_Objects_Unique |
494.68616071420354 ns/iter |
453.2682931402697 ns/iter |
1.09 |
JSON_Parse_1 |
9169.272905031929 ns/iter |
7767.01897321454 ns/iter |
1.18 |
JSON_Parse_Real |
15930.991071425435 ns/iter |
13135.3589285713 ns/iter |
1.21 |
JSON_Parse_Decimal |
11779.990624997794 ns/iter |
8790.308035714186 ns/iter |
1.34 |
JSON_Parse_Schema_ISO_Language |
8163545.555554366 ns/iter |
6560432.142857207 ns/iter |
1.24 |
JSON_Parse_Integer |
6113.5535714283515 ns/iter |
4575.780972725111 ns/iter |
1.34 |
JSON_Parse_String_NonSSO_Plain |
7737.748883927611 ns/iter |
5938.825892857024 ns/iter |
1.30 |
JSON_Parse_String_SSO_Plain |
3734.3269029880053 ns/iter |
2867.185068005315 ns/iter |
1.30 |
JSON_Parse_String_Escape_Heavy |
22107.9251347638 ns/iter |
16524.62985243274 ns/iter |
1.34 |
JSON_Parse_Object_Short_Keys |
13292.076821087927 ns/iter |
10448.145767205993 ns/iter |
1.27 |
JSON_Parse_Object_Scalar_Properties |
6790.159598212752 ns/iter |
5379.150999999638 ns/iter |
1.26 |
JSON_Parse_Object_Array_Properties |
11306.568750001134 ns/iter |
8950.390625000233 ns/iter |
1.26 |
JSON_Parse_Object_Object_Properties |
11480.878571429035 ns/iter |
9096.99331699522 ns/iter |
1.26 |
JSON_Parse_Nested_Containers |
78604.82142856285 ns/iter |
66757.95758927755 ns/iter |
1.18 |
JSON_From_String_Copy |
64.21589285713887 ns/iter |
48.35154387264266 ns/iter |
1.33 |
JSON_From_String_Temporary |
58.088920000000144 ns/iter |
63.26925892857105 ns/iter |
0.92 |
JSON_Number_To_Double |
119.13523214283421 ns/iter |
104.07590160375227 ns/iter |
1.14 |
JSON_Object_At_Last_Key/8 |
7.264693080357075 ns/iter |
5.923354464285475 ns/iter |
1.23 |
JSON_Object_At_Last_Key/32 |
23.356007551827044 ns/iter |
22.81515823942192 ns/iter |
1.02 |
JSON_Object_At_Last_Key/128 |
89.65140624998773 ns/iter |
72.51862723214637 ns/iter |
1.24 |
JSON_Object_At_Last_Key/512 |
424.97174943752896 ns/iter |
388.0578755331135 ns/iter |
1.10 |
JSON_Fast_Hash_Helm_Chart_Lock |
68.75922321429228 ns/iter |
53.58049999999821 ns/iter |
1.28 |
JSON_Equality_Helm_Chart_Lock |
300.71058035718227 ns/iter |
221.37184374997787 ns/iter |
1.36 |
JSON_Divisible_By_Decimal |
300.1578526610212 ns/iter |
264.6593571428671 ns/iter |
1.13 |
JSON_String_Equal/10 |
15.123009307488037 ns/iter |
10.982864062500042 ns/iter |
1.38 |
JSON_String_Equal/100 |
16.468787946430602 ns/iter |
15.641864285713934 ns/iter |
1.05 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5134760714284505 ns/iter |
1.6453024553569102 ns/iter |
1.53 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
15.043102164985646 ns/iter |
12.241416071428748 ns/iter |
1.23 |
JSON_String_Fast_Hash/10 |
4.823509821428778 ns/iter |
3.5666141015703627 ns/iter |
1.35 |
JSON_String_Fast_Hash/100 |
4.776519653519303 ns/iter |
3.56545178014374 ns/iter |
1.34 |
JSON_String_Key_Hash/10 |
5.349227678570807 ns/iter |
3.8723554687499933 ns/iter |
1.38 |
JSON_String_Key_Hash/100 |
11.899987500003459 ns/iter |
8.47788727678608 ns/iter |
1.40 |
JSON_Object_Defines_Miss_Same_Length |
4.410604810598302 ns/iter |
3.197095786245354 ns/iter |
1.38 |
JSON_Object_Defines_Miss_Too_Small |
4.0994577305345326 ns/iter |
4.063092551898269 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Large |
5.023871999999301 ns/iter |
3.3060665676653165 ns/iter |
1.52 |
Pointer_Object_Traverse |
67.4202410714234 ns/iter |
53.94806249999615 ns/iter |
1.25 |
Pointer_Object_Try_Traverse |
71.27555803571843 ns/iter |
53.18108000000166 ns/iter |
1.34 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
173.1789535610533 ns/iter |
119.15850000000155 ns/iter |
1.45 |
Pointer_Walker_Schema_ISO_Language |
7979934.444443239 ns/iter |
7158202.678570749 ns/iter |
1.11 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2320716.053511211 ns/iter |
1936982.8985507253 ns/iter |
1.20 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3787848.0446927533 ns/iter |
2902254.2372881505 ns/iter |
1.31 |
Pointer_Position_Tracker_Get_Deeply_Nested |
522.9615442536242 ns/iter |
411.0295993836757 ns/iter |
1.27 |
URITemplateRouter_Create |
40425.024664847675 ns/iter |
30200.674107143346 ns/iter |
1.34 |
URITemplateRouter_Match |
239.09274117269578 ns/iter |
171.0595873477166 ns/iter |
1.40 |
URITemplateRouter_Match_BasePath |
266.20654090207194 ns/iter |
201.79177694568745 ns/iter |
1.32 |
URITemplateRouterView_Restore |
32532.147377300447 ns/iter |
18817.45372726729 ns/iter |
1.73 |
URITemplateRouterView_Match |
178.21597175553043 ns/iter |
138.97931968843974 ns/iter |
1.28 |
URITemplateRouterView_Match_BasePath |
206.11188588789213 ns/iter |
151.793008848529 ns/iter |
1.36 |
URITemplateRouterView_Arguments |
545.8634999999958 ns/iter |
455.7384722630531 ns/iter |
1.20 |
JSONL_Parse_Large |
33189623.80952447 ns/iter |
25408389.285717346 ns/iter |
1.31 |
JSONL_Parse_Large_GZIP |
33728161.90476225 ns/iter |
25740765.38461703 ns/iter |
1.31 |
HTML_Build_Table_100000 |
90221555.55557118 ns/iter |
73374277.77777824 ns/iter |
1.23 |
HTML_Render_Table_100000 |
7773887.777777114 ns/iter |
6932442.222221703 ns/iter |
1.12 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36018105.26315842 ns/iter |
27990096.000003174 ns/iter |
1.29 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9947775.000000548 ns/iter |
7421944.444443953 ns/iter |
1.34 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2095945.0000006543 ns/iter |
1725613.7592135835 ns/iter |
1.21 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
651790.08928575 ns/iter |
413672.6059199317 ns/iter |
1.58 |
JOSE_VerifySignature_RS256 |
21251.087500004927 ns/iter |
18314.732274394442 ns/iter |
1.16 |
JOSE_VerifySignature_ES512 |
1533894.5783133134 ns/iter |
1179680.781249992 ns/iter |
1.30 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com