Implement an is_lexically_under_path helper#2529
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Adds a new helper to check whether one path is under another using purely lexical (non-filesystem) comparison. Changes:
Technical Notes: 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
1 issue found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/lang/io/io.cc">
<violation number="1" location="src/lang/io/io.cc:159">
P2: Empty-prefix handling regressed in lexical path check. Normalizing an empty prefix turns it into ".", changing prefix semantics versus is_under_path.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| return path_components_cover(normalize(path), normalize(prefix)); | ||
| } |
There was a problem hiding this comment.
P2: Empty-prefix handling regressed in lexical path check. Normalizing an empty prefix turns it into ".", changing prefix semantics versus is_under_path.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lang/io/io.cc, line 159:
<comment>Empty-prefix handling regressed in lexical path check. Normalizing an empty prefix turns it into ".", changing prefix semantics versus is_under_path.</comment>
<file context>
@@ -133,23 +150,13 @@ auto weakly_canonical(const std::filesystem::path &path)
- return true;
+auto is_lexically_under_path(const std::filesystem::path &path,
+ const std::filesystem::path &prefix) -> bool {
+ return path_components_cover(normalize(path), normalize(prefix));
}
</file context>
| return path_components_cover(normalize(path), normalize(prefix)); | |
| } | |
| return path_components_cover(path.empty() ? path : normalize(path), | |
| prefix.empty() ? prefix : normalize(prefix)); |
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: c9f1661 | Previous: bb1c78e | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
22302.007471937635 ns/iter |
22282.381482087087 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
575492.8863261536 ns/iter |
575852.6680395191 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36358550.31578965 ns/iter |
36501901.84210164 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4214691.379518008 ns/iter |
4362235.314465436 ns/iter |
0.97 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2018371.688760579 ns/iter |
2019381.0172912253 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
376423.63973799994 ns/iter |
376098.8264373987 ns/iter |
1.00 |
HTML_Build_Table_100000 |
60647509.99999805 ns/iter |
61167542.27272478 ns/iter |
0.99 |
HTML_Render_Table_100000 |
1937036.3732591323 ns/iter |
1927994.211143702 ns/iter |
1.00 |
JSONL_Parse_Large |
13257246.792453822 ns/iter |
13128000.490567347 ns/iter |
1.01 |
JSONL_Parse_Large_GZIP |
14629225.58333446 ns/iter |
14586844.020833211 ns/iter |
1.00 |
URITemplateRouter_Create |
30361.242530375373 ns/iter |
30613.7742188484 ns/iter |
0.99 |
URITemplateRouter_Match |
158.36529273654722 ns/iter |
158.21572292569553 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
184.51043101725068 ns/iter |
184.1977179540609 ns/iter |
1.00 |
URITemplateRouterView_Restore |
7631.592118785585 ns/iter |
8202.918226379377 ns/iter |
0.93 |
URITemplateRouterView_Match |
123.69476372631843 ns/iter |
123.3310342260746 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
147.23507067681166 ns/iter |
146.70449725965798 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
474.8337684735547 ns/iter |
471.4930615082236 ns/iter |
1.01 |
Pointer_Object_Traverse |
30.261473063797627 ns/iter |
30.28092164154372 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
23.080376056275046 ns/iter |
23.139954888339204 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
157.43233801941676 ns/iter |
166.97523150998956 ns/iter |
0.94 |
Pointer_Walker_Schema_ISO_Language |
1878750.1313672643 ns/iter |
1883601.8690807978 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1534537.1531727049 ns/iter |
1523887.3824176022 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1782109.3163263993 ns/iter |
1691015.3573142528 ns/iter |
1.05 |
Pointer_Position_Tracker_Get_Deeply_Nested |
566.2138776989589 ns/iter |
620.6396730427444 ns/iter |
0.91 |
JSON_Array_Of_Objects_Unique |
364.92676308358716 ns/iter |
367.030240030534 ns/iter |
0.99 |
JSON_Parse_1 |
7709.846971636047 ns/iter |
7717.141430379707 ns/iter |
1.00 |
JSON_Parse_Real |
6702.085541719999 ns/iter |
6646.901780315121 ns/iter |
1.01 |
JSON_Parse_Decimal |
11163.150188053261 ns/iter |
11251.729169011838 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
5192973.044444006 ns/iter |
5172577.205883045 ns/iter |
1.00 |
JSON_Parse_Integer |
4853.600261842865 ns/iter |
4901.894353107162 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
8569.736428440316 ns/iter |
8507.098566329474 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
4026.04965442492 ns/iter |
3864.3285198758754 ns/iter |
1.04 |
JSON_Parse_String_Escape_Heavy |
20731.384455402793 ns/iter |
20610.20222503501 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
11317.490241883603 ns/iter |
11438.163219666816 ns/iter |
0.99 |
JSON_Parse_Object_Scalar_Properties |
5872.90950347498 ns/iter |
5966.076985904407 ns/iter |
0.98 |
JSON_Parse_Object_Array_Properties |
8787.46097324286 ns/iter |
8721.862499375764 ns/iter |
1.01 |
JSON_Parse_Object_Object_Properties |
9471.72009926245 ns/iter |
9535.900376556801 ns/iter |
0.99 |
JSON_Parse_Nested_Containers |
72452.46476407367 ns/iter |
72004.49415264637 ns/iter |
1.01 |
JSON_From_String_Copy |
18.393408236177862 ns/iter |
18.318374350082696 ns/iter |
1.00 |
JSON_From_String_Temporary |
15.426095450185022 ns/iter |
15.123963823226056 ns/iter |
1.02 |
JSON_Number_To_Double |
20.903427285937465 ns/iter |
20.894543382099112 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
5.940836882774097 ns/iter |
5.925501901678487 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
21.809290248627587 ns/iter |
21.89327238317286 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
87.59968299713542 ns/iter |
87.68299362837236 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
424.7778299705281 ns/iter |
435.8931792627971 ns/iter |
0.97 |
JSON_Fast_Hash_Helm_Chart_Lock |
58.964702806667134 ns/iter |
61.080347314562644 ns/iter |
0.97 |
JSON_Equality_Helm_Chart_Lock |
149.7609696219964 ns/iter |
155.60446239147163 ns/iter |
0.96 |
JSON_Divisible_By_Decimal |
238.2160423295346 ns/iter |
241.01046479615658 ns/iter |
0.99 |
JSON_String_Equal/10 |
5.647370619813995 ns/iter |
5.737980508420986 ns/iter |
0.98 |
JSON_String_Equal/100 |
6.267400001871407 ns/iter |
6.3838041446933484 ns/iter |
0.98 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7399057757342771 ns/iter |
0.7495034913542102 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
25.18935235135491 ns/iter |
25.249369749595818 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
0.9405414457965072 ns/iter |
0.9394891027562223 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
0.9345687511539399 ns/iter |
0.938041161218053 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.2466744244091048 ns/iter |
1.2582508582266876 ns/iter |
0.99 |
JSON_String_Key_Hash/100 |
12.437769255836475 ns/iter |
12.45970695138817 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.424951715725568 ns/iter |
3.4385498781892783 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.4261300569133613 ns/iter |
3.4363017381970726 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.1254410281454774 ns/iter |
3.12664330539194 ns/iter |
1.00 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.9332417151307641 ns/iter |
0.9371927428301945 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.9347627945513419 ns/iter |
0.9361328100736488 ns/iter |
1.00 |
Regex_Period_Asterisk |
0.6234026242838002 ns/iter |
0.6242944020307336 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
0.6228757976775532 ns/iter |
0.6263221134266701 ns/iter |
0.99 |
Regex_Period_Plus |
0.9341608695461294 ns/iter |
0.9427431009309983 ns/iter |
0.99 |
Regex_Period |
0.9421445059056368 ns/iter |
0.9401775415815484 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
0.623274348241376 ns/iter |
0.6263229123331113 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.6233682429513991 ns/iter |
0.6245768153733354 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
0.9343832190442797 ns/iter |
0.9364445936912574 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.9350963403946039 ns/iter |
0.9373981683569497 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
4.364803255286862 ns/iter |
4.371867347667987 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
34.1302409090125 ns/iter |
28.30384416628639 ns/iter |
1.21 |
Regex_Caret_Slash_Period_Asterisk |
4.362502318130335 ns/iter |
4.370966806325732 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
0.9374271217520049 ns/iter |
0.9339041712525836 ns/iter |
1.00 |
Regex_Nested_Backtrack |
40.03676099948302 ns/iter |
36.13533294419109 ns/iter |
1.11 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: c9f1661 | Previous: bb1c78e | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.791658766789566 ns/iter |
1.8180620705350259 ns/iter |
0.99 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.7883704080291305 ns/iter |
1.806621787759413 ns/iter |
0.99 |
Regex_Period_Asterisk |
1.7571797201994255 ns/iter |
1.80075707929232 ns/iter |
0.98 |
Regex_Group_Period_Asterisk_Group |
1.7880218045871008 ns/iter |
1.72691909832515 ns/iter |
1.04 |
Regex_Period_Plus |
2.2692362254642 ns/iter |
2.198540055210018 ns/iter |
1.03 |
Regex_Period |
2.1320379704118433 ns/iter |
2.080468712731953 ns/iter |
1.02 |
Regex_Caret_Period_Plus_Dollar |
2.021619355449999 ns/iter |
2.1097275825589943 ns/iter |
0.96 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.1620294887130584 ns/iter |
2.3272913366345453 ns/iter |
0.93 |
Regex_Caret_Period_Asterisk_Dollar |
2.0597316656383704 ns/iter |
1.954926056021731 ns/iter |
1.05 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.840558159410922 ns/iter |
2.0633966348886026 ns/iter |
0.89 |
Regex_Caret_X_Hyphen |
6.813228816856833 ns/iter |
7.755572777916643 ns/iter |
0.88 |
Regex_Period_Md_Dollar |
22.902117967424086 ns/iter |
19.381498337520984 ns/iter |
1.18 |
Regex_Caret_Slash_Period_Asterisk |
4.960053009779854 ns/iter |
5.047590439886979 ns/iter |
0.98 |
Regex_Caret_Period_Range_Dollar |
1.9590579754049993 ns/iter |
2.249680526521731 ns/iter |
0.87 |
Regex_Nested_Backtrack |
23.47019334316678 ns/iter |
26.623754055050398 ns/iter |
0.88 |
JSON_Array_Of_Objects_Unique |
320.6363445167713 ns/iter |
359.0396715098645 ns/iter |
0.89 |
JSON_Parse_1 |
4091.33043373197 ns/iter |
4306.316926728753 ns/iter |
0.95 |
JSON_Parse_Real |
5415.222903280453 ns/iter |
5485.59033014864 ns/iter |
0.99 |
JSON_Parse_Decimal |
5681.959534777765 ns/iter |
5740.073195987165 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
4355788.574324729 ns/iter |
4321248.23943625 ns/iter |
1.01 |
JSON_Parse_Integer |
2916.830867735093 ns/iter |
3143.1197243676334 ns/iter |
0.93 |
JSON_Parse_String_NonSSO_Plain |
4192.099124166919 ns/iter |
5017.695123539386 ns/iter |
0.84 |
JSON_Parse_String_SSO_Plain |
2482.4838545335415 ns/iter |
2416.1257629495362 ns/iter |
1.03 |
JSON_Parse_String_Escape_Heavy |
15626.082010644177 ns/iter |
18517.239932887493 ns/iter |
0.84 |
JSON_Parse_Object_Short_Keys |
5510.845355643708 ns/iter |
5331.522446822324 ns/iter |
1.03 |
JSON_Parse_Object_Scalar_Properties |
2720.6879196138166 ns/iter |
2933.4558971763236 ns/iter |
0.93 |
JSON_Parse_Object_Array_Properties |
3804.9092463181864 ns/iter |
4043.904729714606 ns/iter |
0.94 |
JSON_Parse_Object_Object_Properties |
3357.102005357231 ns/iter |
3785.865865852289 ns/iter |
0.89 |
JSON_Parse_Nested_Containers |
28008.470364653942 ns/iter |
56453.874584510806 ns/iter |
0.50 |
JSON_From_String_Copy |
23.76500399292824 ns/iter |
33.5471888775968 ns/iter |
0.71 |
JSON_From_String_Temporary |
29.219212519691034 ns/iter |
24.566968847133552 ns/iter |
1.19 |
JSON_Number_To_Double |
37.33082282568274 ns/iter |
62.320245799992335 ns/iter |
0.60 |
JSON_Object_At_Last_Key/8 |
4.167515245864835 ns/iter |
5.873626275681077 ns/iter |
0.71 |
JSON_Object_At_Last_Key/32 |
14.717711395694366 ns/iter |
15.71465217664645 ns/iter |
0.94 |
JSON_Object_At_Last_Key/128 |
55.66082314635093 ns/iter |
77.36109829283275 ns/iter |
0.72 |
JSON_Object_At_Last_Key/512 |
219.13595430403322 ns/iter |
272.6030842024959 ns/iter |
0.80 |
JSON_Fast_Hash_Helm_Chart_Lock |
68.0107194206791 ns/iter |
81.34334283364483 ns/iter |
0.84 |
JSON_Equality_Helm_Chart_Lock |
158.564951152536 ns/iter |
157.7937908859081 ns/iter |
1.00 |
JSON_Divisible_By_Decimal |
299.73647256099247 ns/iter |
223.14346747812513 ns/iter |
1.34 |
JSON_String_Equal/10 |
8.972639227710362 ns/iter |
7.604838037462855 ns/iter |
1.18 |
JSON_String_Equal/100 |
6.635547086529214 ns/iter |
9.117845956224219 ns/iter |
0.73 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8287049429796485 ns/iter |
1.0598596532814328 ns/iter |
0.78 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.367002729551114 ns/iter |
3.7626138024295748 ns/iter |
0.89 |
JSON_String_Fast_Hash/10 |
2.2731010261889555 ns/iter |
2.857775575920127 ns/iter |
0.80 |
JSON_String_Fast_Hash/100 |
2.112030287613177 ns/iter |
2.944499580647047 ns/iter |
0.72 |
JSON_String_Key_Hash/10 |
1.7070413810422573 ns/iter |
1.9753818162966126 ns/iter |
0.86 |
JSON_String_Key_Hash/100 |
2.2983436197970852 ns/iter |
3.6210211411772897 ns/iter |
0.63 |
JSON_Object_Defines_Miss_Same_Length |
2.418534225749891 ns/iter |
3.657610892198648 ns/iter |
0.66 |
JSON_Object_Defines_Miss_Too_Small |
2.2308751161617124 ns/iter |
3.5874731912655737 ns/iter |
0.62 |
JSON_Object_Defines_Miss_Too_Large |
2.3526614072355483 ns/iter |
5.208602883387397 ns/iter |
0.45 |
Pointer_Object_Traverse |
13.361880585804156 ns/iter |
23.0432415569814 ns/iter |
0.58 |
Pointer_Object_Try_Traverse |
23.34769887478737 ns/iter |
35.38201580222115 ns/iter |
0.66 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
153.21618410982117 ns/iter |
342.0956467151705 ns/iter |
0.45 |
Pointer_Walker_Schema_ISO_Language |
2158608.626198006 ns/iter |
5988896.4843750615 ns/iter |
0.36 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
919361.1825191983 ns/iter |
1825175.3535620407 ns/iter |
0.50 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1218378.993610331 ns/iter |
1994902.6948640887 ns/iter |
0.61 |
Pointer_Position_Tracker_Get_Deeply_Nested |
389.18940614549604 ns/iter |
461.69533057175664 ns/iter |
0.84 |
URITemplateRouter_Create |
31328.242514669502 ns/iter |
29960.771008799955 ns/iter |
1.05 |
URITemplateRouter_Match |
182.61799175338814 ns/iter |
163.13114981317474 ns/iter |
1.12 |
URITemplateRouter_Match_BasePath |
219.73462206475816 ns/iter |
217.68920753972608 ns/iter |
1.01 |
URITemplateRouterView_Restore |
9779.440887724102 ns/iter |
14181.55096099053 ns/iter |
0.69 |
URITemplateRouterView_Match |
123.3342231037266 ns/iter |
157.49934665104496 ns/iter |
0.78 |
URITemplateRouterView_Match_BasePath |
140.16549690392367 ns/iter |
151.2705408783415 ns/iter |
0.93 |
URITemplateRouterView_Arguments |
396.43502178442895 ns/iter |
447.1140488807089 ns/iter |
0.89 |
JSONL_Parse_Large |
11876981.557377089 ns/iter |
13179310.840000654 ns/iter |
0.90 |
JSONL_Parse_Large_GZIP |
12639292.444444235 ns/iter |
14818136.918367544 ns/iter |
0.85 |
HTML_Build_Table_100000 |
61541757.636363894 ns/iter |
76600594.72728294 ns/iter |
0.80 |
HTML_Render_Table_100000 |
2421065.556034293 ns/iter |
3193319.07894713 ns/iter |
0.76 |
GZIP_Compress_ISO_Language_Set_3_Locations |
26397041.653843608 ns/iter |
28981488.320000604 ns/iter |
0.91 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
5862363.445255579 ns/iter |
6066022.090000161 ns/iter |
0.97 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1414997.5379745467 ns/iter |
1520647.3158995584 ns/iter |
0.93 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
274200.50039001316 ns/iter |
271118.62960182177 ns/iter |
1.01 |
JOSE_VerifySignature_RS256 |
20695.600379130396 ns/iter |
21460.52918909896 ns/iter |
0.96 |
JOSE_VerifySignature_ES512 |
958354.8468084869 ns/iter |
984775.983516565 ns/iter |
0.97 |
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: c9f1661 | Previous: bb1c78e | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.3575100730340113 ns/iter |
2.8319962894581754 ns/iter |
0.83 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.045245661242806 ns/iter |
2.4621201824088543 ns/iter |
0.83 |
Regex_Period_Asterisk |
2.0464207430352515 ns/iter |
2.460821155964057 ns/iter |
0.83 |
Regex_Group_Period_Asterisk_Group |
2.327720471330517 ns/iter |
2.813395034227263 ns/iter |
0.83 |
Regex_Period_Plus |
2.909177907605437 ns/iter |
4.228280881156929 ns/iter |
0.69 |
Regex_Period |
2.675161197570724 ns/iter |
3.870146553752063 ns/iter |
0.69 |
Regex_Caret_Period_Plus_Dollar |
2.63448072296916 ns/iter |
3.8681822215114403 ns/iter |
0.68 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.9037977412044844 ns/iter |
4.219237896470882 ns/iter |
0.69 |
Regex_Caret_Period_Asterisk_Dollar |
3.483305208536071 ns/iter |
3.1696546220113158 ns/iter |
1.10 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.198759809272027 ns/iter |
2.823569310535535 ns/iter |
1.13 |
Regex_Caret_X_Hyphen |
6.133849622675845 ns/iter |
5.592668998949809 ns/iter |
1.10 |
Regex_Period_Md_Dollar |
26.230733915547056 ns/iter |
26.384751980524275 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
6.704887515089031 ns/iter |
7.690357508787095 ns/iter |
0.87 |
Regex_Caret_Period_Range_Dollar |
3.466202745674631 ns/iter |
2.4647483967630555 ns/iter |
1.41 |
Regex_Nested_Backtrack |
42.597810800142 ns/iter |
37.330420770740766 ns/iter |
1.14 |
JSON_Array_Of_Objects_Unique |
385.43753793713887 ns/iter |
438.76854207527504 ns/iter |
0.88 |
JSON_Parse_1 |
4504.14401828964 ns/iter |
4613.856424219974 ns/iter |
0.98 |
JSON_Parse_Real |
4955.455110837879 ns/iter |
5133.925649780878 ns/iter |
0.97 |
JSON_Parse_Decimal |
6975.341529699407 ns/iter |
7680.955675060124 ns/iter |
0.91 |
JSON_Parse_Schema_ISO_Language |
3210523.9861753685 ns/iter |
3530753.105527349 ns/iter |
0.91 |
JSON_Parse_Integer |
3627.2263188252455 ns/iter |
3974.451194314922 ns/iter |
0.91 |
JSON_Parse_String_NonSSO_Plain |
4785.98350630594 ns/iter |
5064.920265469904 ns/iter |
0.94 |
JSON_Parse_String_SSO_Plain |
2600.4110384140363 ns/iter |
2751.9288313283478 ns/iter |
0.94 |
JSON_Parse_String_Escape_Heavy |
13134.700920535588 ns/iter |
14183.590999271935 ns/iter |
0.93 |
JSON_Parse_Object_Short_Keys |
7811.0901404701735 ns/iter |
7818.5238656654465 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
4018.118645290177 ns/iter |
4007.3154625379216 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
5129.756006869358 ns/iter |
5609.380373839248 ns/iter |
0.91 |
JSON_Parse_Object_Object_Properties |
5029.292770832483 ns/iter |
5574.273434516909 ns/iter |
0.90 |
JSON_Parse_Nested_Containers |
41816.070084241896 ns/iter |
44384.75751808495 ns/iter |
0.94 |
JSON_From_String_Copy |
19.25192785191652 ns/iter |
23.0454990488031 ns/iter |
0.84 |
JSON_From_String_Temporary |
17.117107565211953 ns/iter |
20.751908187605874 ns/iter |
0.82 |
JSON_Number_To_Double |
22.394582682595715 ns/iter |
22.893482894728816 ns/iter |
0.98 |
JSON_Object_At_Last_Key/8 |
3.4738087701537332 ns/iter |
3.8816181769396416 ns/iter |
0.89 |
JSON_Object_At_Last_Key/32 |
11.160288578480401 ns/iter |
13.024228960667472 ns/iter |
0.86 |
JSON_Object_At_Last_Key/128 |
45.07603732850764 ns/iter |
47.54487340137226 ns/iter |
0.95 |
JSON_Object_At_Last_Key/512 |
358.3200909811008 ns/iter |
366.0766302926261 ns/iter |
0.98 |
JSON_Fast_Hash_Helm_Chart_Lock |
56.63216118995925 ns/iter |
72.76734735127282 ns/iter |
0.78 |
JSON_Equality_Helm_Chart_Lock |
143.7593276416506 ns/iter |
159.7428305109808 ns/iter |
0.90 |
JSON_Divisible_By_Decimal |
226.43330325564315 ns/iter |
247.7144051099029 ns/iter |
0.91 |
JSON_String_Equal/10 |
5.807715236800131 ns/iter |
5.98060505857788 ns/iter |
0.97 |
JSON_String_Equal/100 |
6.416904596026281 ns/iter |
6.6864728830973785 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.8715225976671397 ns/iter |
1.054278410281673 ns/iter |
0.83 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
9.881666009387038 ns/iter |
12.36944637462375 ns/iter |
0.80 |
JSON_String_Fast_Hash/10 |
2.3241771860417515 ns/iter |
2.4628835723800964 ns/iter |
0.94 |
JSON_String_Fast_Hash/100 |
2.3223485215822515 ns/iter |
2.461486255873947 ns/iter |
0.94 |
JSON_String_Key_Hash/10 |
2.0356040632583796 ns/iter |
2.4629289418460236 ns/iter |
0.83 |
JSON_String_Key_Hash/100 |
6.099913341111738 ns/iter |
7.731667076437751 ns/iter |
0.79 |
JSON_Object_Defines_Miss_Same_Length |
2.5597579867102582 ns/iter |
2.9052057742795077 ns/iter |
0.88 |
JSON_Object_Defines_Miss_Too_Small |
3.498005865240753 ns/iter |
4.253615928834659 ns/iter |
0.82 |
JSON_Object_Defines_Miss_Too_Large |
2.617183185735623 ns/iter |
2.9417170062757703 ns/iter |
0.89 |
Pointer_Object_Traverse |
22.722926269525594 ns/iter |
26.229512566784443 ns/iter |
0.87 |
Pointer_Object_Try_Traverse |
27.429571328574795 ns/iter |
30.617682268292672 ns/iter |
0.90 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
146.23511643512262 ns/iter |
200.9566295762237 ns/iter |
0.73 |
Pointer_Walker_Schema_ISO_Language |
1597769.2782806577 ns/iter |
1783467.1170482577 ns/iter |
0.90 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1138913.4820845886 ns/iter |
1248012.342293919 ns/iter |
0.91 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1572811.8445945522 ns/iter |
1569882.018058694 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
637.4889361490573 ns/iter |
742.2545628960272 ns/iter |
0.86 |
URITemplateRouter_Create |
29577.698931995565 ns/iter |
31447.6630249808 ns/iter |
0.94 |
URITemplateRouter_Match |
170.3272766309409 ns/iter |
180.03441895987288 ns/iter |
0.95 |
URITemplateRouter_Match_BasePath |
198.71001223330927 ns/iter |
212.73860469084946 ns/iter |
0.93 |
URITemplateRouterView_Restore |
7108.531986330457 ns/iter |
8785.874440507314 ns/iter |
0.81 |
URITemplateRouterView_Match |
133.33348283788015 ns/iter |
167.7466539719021 ns/iter |
0.79 |
URITemplateRouterView_Match_BasePath |
151.9385569657416 ns/iter |
197.04309534833868 ns/iter |
0.77 |
URITemplateRouterView_Arguments |
415.99956814002906 ns/iter |
453.50933146439985 ns/iter |
0.92 |
JSONL_Parse_Large |
9132093.44736886 ns/iter |
9170870.552631976 ns/iter |
1.00 |
JSONL_Parse_Large_GZIP |
10605884.88059605 ns/iter |
10899185.718750814 ns/iter |
0.97 |
HTML_Build_Table_100000 |
63846792.36364057 ns/iter |
73428385.44443314 ns/iter |
0.87 |
HTML_Render_Table_100000 |
4963439.71631193 ns/iter |
5331617.623077224 ns/iter |
0.93 |
GZIP_Compress_ISO_Language_Set_3_Locations |
30412229.173911642 ns/iter |
35984564.10525997 ns/iter |
0.85 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3797163.6864866116 ns/iter |
4287656.846625736 ns/iter |
0.89 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1759058.9236640593 ns/iter |
2132145.9176828917 ns/iter |
0.83 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
330724.4133207365 ns/iter |
277537.871876239 ns/iter |
1.19 |
JOSE_VerifySignature_RS256 |
52957.997872014814 ns/iter |
63897.45558502758 ns/iter |
0.83 |
JOSE_VerifySignature_ES512 |
2266117.3311687494 ns/iter |
2676920.9580149557 ns/iter |
0.85 |
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: c9f1661 | Previous: bb1c78e | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.199241999998776 ns/iter |
5.072665999998662 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.030130000000099 ns/iter |
5.017592000001514 ns/iter |
1.00 |
Regex_Period_Asterisk |
5.16563799999858 ns/iter |
5.031993000000057 ns/iter |
1.03 |
Regex_Group_Period_Asterisk_Group |
5.165468000000146 ns/iter |
5.015750871654261 ns/iter |
1.03 |
Regex_Period_Plus |
4.852437999998074 ns/iter |
4.983019577003822 ns/iter |
0.97 |
Regex_Period |
5.064827999999579 ns/iter |
4.930249999998995 ns/iter |
1.03 |
Regex_Caret_Period_Plus_Dollar |
4.983265224325078 ns/iter |
4.851023237688983 ns/iter |
1.03 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.9992517857130485 ns/iter |
4.853261050191541 ns/iter |
1.03 |
Regex_Caret_Period_Asterisk_Dollar |
5.109491999996862 ns/iter |
5.038029000002098 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.090989000000263 ns/iter |
5.045608000000357 ns/iter |
1.01 |
Regex_Caret_X_Hyphen |
8.434690848214846 ns/iter |
8.20189397321615 ns/iter |
1.03 |
Regex_Period_Md_Dollar |
46.75744400215078 ns/iter |
44.597200690685874 ns/iter |
1.05 |
Regex_Caret_Slash_Period_Asterisk |
7.945026785713643 ns/iter |
7.844130580357346 ns/iter |
1.01 |
Regex_Caret_Period_Range_Dollar |
6.151854464284107 ns/iter |
5.960803999998916 ns/iter |
1.03 |
Regex_Nested_Backtrack |
55.49144999999954 ns/iter |
53.90966964284871 ns/iter |
1.03 |
JSON_Array_Of_Objects_Unique |
506.36819999999716 ns/iter |
500.15904021412905 ns/iter |
1.01 |
JSON_Parse_1 |
8878.234025743652 ns/iter |
9292.43976589304 ns/iter |
0.96 |
JSON_Parse_Real |
16604.996685249174 ns/iter |
16050.950892854133 ns/iter |
1.03 |
JSON_Parse_Decimal |
12107.142187502974 ns/iter |
11861.937500000862 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
7544907.142857937 ns/iter |
7567616.0714286715 ns/iter |
1.00 |
JSON_Parse_Integer |
6402.016071429476 ns/iter |
6147.585714286054 ns/iter |
1.04 |
JSON_Parse_String_NonSSO_Plain |
7719.848214285158 ns/iter |
7680.629464285207 ns/iter |
1.01 |
JSON_Parse_String_SSO_Plain |
3907.325344060107 ns/iter |
3707.3204540437846 ns/iter |
1.05 |
JSON_Parse_String_Escape_Heavy |
21996.04999999849 ns/iter |
21884.931249999794 ns/iter |
1.01 |
JSON_Parse_Object_Short_Keys |
13583.81011692325 ns/iter |
13174.358150188073 ns/iter |
1.03 |
JSON_Parse_Object_Scalar_Properties |
6878.574999997713 ns/iter |
6774.594642856917 ns/iter |
1.02 |
JSON_Parse_Object_Array_Properties |
11436.475000003555 ns/iter |
11354.83593749953 ns/iter |
1.01 |
JSON_Parse_Object_Object_Properties |
11749.041071433501 ns/iter |
11528.728125000498 ns/iter |
1.02 |
JSON_Parse_Nested_Containers |
85660.42410715268 ns/iter |
79742.94642857213 ns/iter |
1.07 |
JSON_From_String_Copy |
67.02861607144379 ns/iter |
64.36408035714943 ns/iter |
1.04 |
JSON_From_String_Temporary |
59.44566964286325 ns/iter |
59.43376785714755 ns/iter |
1.00 |
JSON_Number_To_Double |
125.86112499994735 ns/iter |
119.4177031250021 ns/iter |
1.05 |
JSON_Object_At_Last_Key/8 |
7.298030357142286 ns/iter |
7.286299107143179 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
23.872523171068476 ns/iter |
23.93019950971027 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
93.5941163574504 ns/iter |
89.81616563321461 ns/iter |
1.04 |
JSON_Object_At_Last_Key/512 |
439.1886875001205 ns/iter |
427.70236593568353 ns/iter |
1.03 |
JSON_Fast_Hash_Helm_Chart_Lock |
65.9816785714286 ns/iter |
64.51671428570599 ns/iter |
1.02 |
JSON_Equality_Helm_Chart_Lock |
310.66803571430256 ns/iter |
300.4758928571708 ns/iter |
1.03 |
JSON_Divisible_By_Decimal |
303.4521469360523 ns/iter |
296.2932615743964 ns/iter |
1.02 |
JSON_String_Equal/10 |
15.37508035714349 ns/iter |
15.10116020044033 ns/iter |
1.02 |
JSON_String_Equal/100 |
16.74560926286165 ns/iter |
16.44734821428224 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5701721874995087 ns/iter |
2.5204717857142054 ns/iter |
1.02 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.489730738885841 ns/iter |
14.223736607143728 ns/iter |
1.02 |
JSON_String_Fast_Hash/10 |
4.893149341278199 ns/iter |
4.716379443016644 ns/iter |
1.04 |
JSON_String_Fast_Hash/100 |
4.718189621589571 ns/iter |
4.71902679624771 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.496972999999343 ns/iter |
5.354588999998668 ns/iter |
1.03 |
JSON_String_Key_Hash/100 |
11.935383928573627 ns/iter |
11.910584375002031 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
4.155952596706394 ns/iter |
4.095077944601314 ns/iter |
1.01 |
JSON_Object_Defines_Miss_Too_Small |
5.124691071427736 ns/iter |
5.048899000000802 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Large |
4.488473047015688 ns/iter |
4.418720279328418 ns/iter |
1.02 |
Pointer_Object_Traverse |
71.32588169643635 ns/iter |
69.96568750001383 ns/iter |
1.02 |
Pointer_Object_Try_Traverse |
74.71177455354702 ns/iter |
70.92142857142595 ns/iter |
1.05 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
197.0830622395217 ns/iter |
195.1875174274883 ns/iter |
1.01 |
Pointer_Walker_Schema_ISO_Language |
6511353.571430131 ns/iter |
7275169.642856635 ns/iter |
0.90 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2367299.68750069 ns/iter |
2442561.7857137434 ns/iter |
0.97 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3632501.025640522 ns/iter |
3660186.6666667494 ns/iter |
0.99 |
Pointer_Position_Tracker_Get_Deeply_Nested |
547.3556702822251 ns/iter |
509.630347565224 ns/iter |
1.07 |
URITemplateRouter_Create |
41985.13725263277 ns/iter |
40884.29574603956 ns/iter |
1.03 |
URITemplateRouter_Match |
192.7907850705188 ns/iter |
190.34793569869862 ns/iter |
1.01 |
URITemplateRouter_Match_BasePath |
219.2569062499672 ns/iter |
219.72446874997334 ns/iter |
1.00 |
URITemplateRouterView_Restore |
32597.311166728992 ns/iter |
33551.59595364034 ns/iter |
0.97 |
URITemplateRouterView_Match |
159.41832589285403 ns/iter |
157.6761830357043 ns/iter |
1.01 |
URITemplateRouterView_Match_BasePath |
177.8139265905192 ns/iter |
175.50208987740115 ns/iter |
1.01 |
URITemplateRouterView_Arguments |
534.7557999998571 ns/iter |
526.0177000000112 ns/iter |
1.02 |
JSONL_Parse_Large |
32962494.999992482 ns/iter |
33377266.666667268 ns/iter |
0.99 |
JSONL_Parse_Large_GZIP |
33819679.99998778 ns/iter |
33510028.57142963 ns/iter |
1.01 |
HTML_Build_Table_100000 |
93277866.6666915 ns/iter |
89189814.28571117 ns/iter |
1.05 |
HTML_Render_Table_100000 |
7175322.321428114 ns/iter |
8146074.444443406 ns/iter |
0.88 |
GZIP_Compress_ISO_Language_Set_3_Locations |
37447105.555555835 ns/iter |
37142784.21052529 ns/iter |
1.01 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9529142.666663878 ns/iter |
10153585.93750193 ns/iter |
0.94 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2166782.812500401 ns/iter |
2159490.9374996973 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
633809.1071427243 ns/iter |
630567.4000000181 ns/iter |
1.01 |
JOSE_VerifySignature_RS256 |
21655.85937500225 ns/iter |
21312.104572362012 ns/iter |
1.02 |
JOSE_VerifySignature_ES512 |
1569452.6785716382 ns/iter |
1547099.3303569206 ns/iter |
1.01 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com