Fix sanitizers not applying to library code#2596
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: Moves sanitizer enabling earlier in the top-level CMake configuration so it applies to targets created in subsequent subdirectories. Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
|
|
||
| # Enable the sanitizers before defining any target | ||
| if(SOURCEMETA_CORE_ADDRESS_SANITIZER) | ||
| sourcemeta_sanitizer(TYPE address) |
There was a problem hiding this comment.
CMakeLists.txt (diff line 62): because this is an if/elseif, if both SOURCEMETA_CORE_ADDRESS_SANITIZER and SOURCEMETA_CORE_UNDEFINED_SANITIZER are enabled, only the address sanitizer will be applied and the undefined sanitizer will be silently ignored.
Severity: low
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
1 issue found across 1 file
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="CMakeLists.txt">
<violation number="1" location="CMakeLists.txt:63">
P3: Because this uses `if`/`elseif`, enabling both `SOURCEMETA_CORE_ADDRESS_SANITIZER` and `SOURCEMETA_CORE_UNDEFINED_SANITIZER` will silently apply only the address sanitizer while ignoring the undefined sanitizer. Consider either emitting a warning/error when both are set, or using separate `if` blocks (address and undefined sanitizers are compatible and can be combined in GCC/Clang).</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| # Enable the sanitizers before defining any target | ||
| if(SOURCEMETA_CORE_ADDRESS_SANITIZER) | ||
| sourcemeta_sanitizer(TYPE address) | ||
| elseif(SOURCEMETA_CORE_UNDEFINED_SANITIZER) |
There was a problem hiding this comment.
P3: Because this uses if/elseif, enabling both SOURCEMETA_CORE_ADDRESS_SANITIZER and SOURCEMETA_CORE_UNDEFINED_SANITIZER will silently apply only the address sanitizer while ignoring the undefined sanitizer. Consider either emitting a warning/error when both are set, or using separate if blocks (address and undefined sanitizers are compatible and can be combined in GCC/Clang).
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CMakeLists.txt, line 63:
<comment>Because this uses `if`/`elseif`, enabling both `SOURCEMETA_CORE_ADDRESS_SANITIZER` and `SOURCEMETA_CORE_UNDEFINED_SANITIZER` will silently apply only the address sanitizer while ignoring the undefined sanitizer. Consider either emitting a warning/error when both are set, or using separate `if` blocks (address and undefined sanitizers are compatible and can be combined in GCC/Clang).</comment>
<file context>
@@ -57,6 +57,13 @@ if(PROJECT_IS_TOP_LEVEL)
+# Enable the sanitizers before defining any target
+if(SOURCEMETA_CORE_ADDRESS_SANITIZER)
+ sourcemeta_sanitizer(TYPE address)
+elseif(SOURCEMETA_CORE_UNDEFINED_SANITIZER)
+ sourcemeta_sanitizer(TYPE undefined)
+endif()
</file context>
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: b1b15d1 | Previous: e1185a1 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
19196.209716687856 ns/iter |
24621.76340350995 ns/iter |
0.78 |
JOSE_VerifySignature_ES512 |
497982.23721591645 ns/iter |
641933.3244486246 ns/iter |
0.78 |
GZIP_Compress_ISO_Language_Set_3_Locations |
30345396.39130522 ns/iter |
39407712.944441505 ns/iter |
0.77 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
2839608.32926824 ns/iter |
4057929.843930793 ns/iter |
0.70 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1743019.437811027 ns/iter |
2268106.672077734 ns/iter |
0.77 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
218595.97656499175 ns/iter |
303161.1959641186 ns/iter |
0.72 |
HTML_Build_Table_100000 |
56643593.9166657 ns/iter |
70639989.00000569 ns/iter |
0.80 |
HTML_Render_Table_100000 |
2019893.457971002 ns/iter |
2077665.415204563 ns/iter |
0.97 |
JSONL_Parse_Large |
9473927.418919114 ns/iter |
12095123.431034327 ns/iter |
0.78 |
JSONL_Parse_Large_GZIP |
10614470.212121923 ns/iter |
13614906.686275033 ns/iter |
0.78 |
URITemplateRouter_Create |
21976.905563143762 ns/iter |
29677.12419409538 ns/iter |
0.74 |
URITemplateRouter_Match |
115.71707702323737 ns/iter |
157.60985820485652 ns/iter |
0.73 |
URITemplateRouter_Match_BasePath |
137.0423429814347 ns/iter |
186.78058877942692 ns/iter |
0.73 |
URITemplateRouterView_Restore |
7798.923776361143 ns/iter |
9964.059888714368 ns/iter |
0.78 |
URITemplateRouterView_Match |
93.3720583065129 ns/iter |
124.27616158931119 ns/iter |
0.75 |
URITemplateRouterView_Match_BasePath |
105.0725961314243 ns/iter |
140.55923167004215 ns/iter |
0.75 |
URITemplateRouterView_Arguments |
353.29997345889643 ns/iter |
458.6924205356641 ns/iter |
0.77 |
Pointer_Object_Traverse |
23.35693892364866 ns/iter |
29.800465916988756 ns/iter |
0.78 |
Pointer_Object_Try_Traverse |
17.627971594250713 ns/iter |
22.785006715287995 ns/iter |
0.77 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
129.62020387208364 ns/iter |
173.11673261882189 ns/iter |
0.75 |
Pointer_Walker_Schema_ISO_Language |
1603156.5736263155 ns/iter |
1947754.0879122543 ns/iter |
0.82 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1193677.9710885165 ns/iter |
1531843.6043956424 ns/iter |
0.78 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1295374.0166052172 ns/iter |
1669091.3404761972 ns/iter |
0.78 |
Pointer_Position_Tracker_Get_Deeply_Nested |
541.0774892260774 ns/iter |
661.2422398303423 ns/iter |
0.82 |
JSON_Array_Of_Objects_Unique |
318.3841797435207 ns/iter |
420.6600636186239 ns/iter |
0.76 |
JSON_Parse_1 |
5820.8318422057155 ns/iter |
7440.408489432534 ns/iter |
0.78 |
JSON_Parse_Real |
5347.44639970873 ns/iter |
6516.906160942092 ns/iter |
0.82 |
JSON_Parse_Decimal |
7533.448066286309 ns/iter |
9554.398602545847 ns/iter |
0.79 |
JSON_Parse_Schema_ISO_Language |
4012991.314285565 ns/iter |
5081982.737226305 ns/iter |
0.79 |
JSON_Parse_Integer |
3776.887995423397 ns/iter |
4913.220698315165 ns/iter |
0.77 |
JSON_Parse_String_NonSSO_Plain |
6611.5862010573865 ns/iter |
8527.87842894253 ns/iter |
0.78 |
JSON_Parse_String_SSO_Plain |
2861.427437159663 ns/iter |
3713.141977371626 ns/iter |
0.77 |
JSON_Parse_String_Escape_Heavy |
15682.283650189773 ns/iter |
20351.903872451872 ns/iter |
0.77 |
JSON_Parse_Object_Short_Keys |
8832.655257586708 ns/iter |
11335.388268655777 ns/iter |
0.78 |
JSON_Parse_Object_Scalar_Properties |
4455.607416596454 ns/iter |
5691.684985431339 ns/iter |
0.78 |
JSON_Parse_Object_Array_Properties |
7296.511490170908 ns/iter |
9423.208162825638 ns/iter |
0.77 |
JSON_Parse_Object_Object_Properties |
7290.624488265567 ns/iter |
9437.31581790469 ns/iter |
0.77 |
JSON_Parse_Nested_Containers |
56994.65684193289 ns/iter |
74841.1834783433 ns/iter |
0.76 |
JSON_From_String_Copy |
15.424336527476456 ns/iter |
20.221561174167206 ns/iter |
0.76 |
JSON_From_String_Temporary |
12.72866449251338 ns/iter |
16.969890472152503 ns/iter |
0.75 |
JSON_Number_To_Double |
16.105247347680574 ns/iter |
20.76103888244001 ns/iter |
0.78 |
JSON_Object_At_Last_Key/8 |
5.183038807234401 ns/iter |
6.690137820160198 ns/iter |
0.77 |
JSON_Object_At_Last_Key/32 |
18.557417132630878 ns/iter |
23.923989503052795 ns/iter |
0.78 |
JSON_Object_At_Last_Key/128 |
70.9372641852168 ns/iter |
91.43864467034703 ns/iter |
0.78 |
JSON_Object_At_Last_Key/512 |
294.4579929368004 ns/iter |
378.99329302903135 ns/iter |
0.78 |
JSON_Fast_Hash_Helm_Chart_Lock |
42.781983843856075 ns/iter |
52.90063778706393 ns/iter |
0.81 |
JSON_Equality_Helm_Chart_Lock |
124.50690681138268 ns/iter |
166.2760967511958 ns/iter |
0.75 |
JSON_Divisible_By_Decimal |
180.3271707754561 ns/iter |
232.36816496710705 ns/iter |
0.78 |
JSON_String_Equal/10 |
5.015186798836572 ns/iter |
6.466769769554801 ns/iter |
0.78 |
JSON_String_Equal/100 |
5.8463944649184745 ns/iter |
7.16777588135382 ns/iter |
0.82 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.5558628485844769 ns/iter |
0.7154431624330226 ns/iter |
0.78 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
17.01558413786294 ns/iter |
21.929686652018912 ns/iter |
0.78 |
JSON_String_Fast_Hash/10 |
0.8198850329780853 ns/iter |
1.0559088282107394 ns/iter |
0.78 |
JSON_String_Fast_Hash/100 |
0.8186287293515534 ns/iter |
1.0550764104418444 ns/iter |
0.78 |
JSON_String_Key_Hash/10 |
1.365519040234675 ns/iter |
1.7590405192538192 ns/iter |
0.78 |
JSON_String_Key_Hash/100 |
11.452000874406076 ns/iter |
14.759204179263268 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Same_Length |
3.0022330519566003 ns/iter |
3.8837208246193327 ns/iter |
0.77 |
JSON_Object_Defines_Miss_Too_Small |
3.0051268354025105 ns/iter |
3.8668139931899175 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Large |
2.72852307819833 ns/iter |
3.5164297364284836 ns/iter |
0.78 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.5451330963474476 ns/iter |
0.7034811785577241 ns/iter |
0.77 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
0.5454928601101734 ns/iter |
0.703598776175089 ns/iter |
0.78 |
Regex_Period_Asterisk |
0.8191717284672138 ns/iter |
1.0554632977117702 ns/iter |
0.78 |
Regex_Group_Period_Asterisk_Group |
0.8183295710809753 ns/iter |
1.054929288462087 ns/iter |
0.78 |
Regex_Period_Plus |
0.5454709321635074 ns/iter |
0.7030832931930526 ns/iter |
0.78 |
Regex_Period |
0.545731036288929 ns/iter |
0.7035980525315556 ns/iter |
0.78 |
Regex_Caret_Period_Plus_Dollar |
0.8186028002588484 ns/iter |
1.0551313723196345 ns/iter |
0.78 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
0.8190669538149762 ns/iter |
1.054622772012515 ns/iter |
0.78 |
Regex_Caret_Period_Asterisk_Dollar |
0.5461591127297846 ns/iter |
0.704939014479256 ns/iter |
0.77 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
0.5461309875401291 ns/iter |
0.7054944676575348 ns/iter |
0.77 |
Regex_Caret_X_Hyphen |
2.7286209706791382 ns/iter |
3.5156473304259417 ns/iter |
0.78 |
Regex_Period_Md_Dollar |
25.37758395539892 ns/iter |
37.16174354682062 ns/iter |
0.68 |
Regex_Caret_Slash_Period_Asterisk |
3.272330593247807 ns/iter |
4.570256295910035 ns/iter |
0.72 |
Regex_Caret_Period_Range_Dollar |
0.6512364675349762 ns/iter |
0.8385556584908963 ns/iter |
0.78 |
Regex_Nested_Backtrack |
29.301903387731418 ns/iter |
40.84462589691236 ns/iter |
0.72 |
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: b1b15d1 | Previous: e1185a1 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.5845421227445287 ns/iter |
1.7230359829648672 ns/iter |
0.92 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.8813739790199169 ns/iter |
1.7209469946854663 ns/iter |
1.09 |
Regex_Period_Asterisk |
1.588368370094412 ns/iter |
1.7158324169543806 ns/iter |
0.93 |
Regex_Group_Period_Asterisk_Group |
1.573349396777416 ns/iter |
1.6891316872665632 ns/iter |
0.93 |
Regex_Period_Plus |
1.9939944898440445 ns/iter |
2.4687097028099334 ns/iter |
0.81 |
Regex_Period |
2.004594253814746 ns/iter |
2.4649792522442966 ns/iter |
0.81 |
Regex_Caret_Period_Plus_Dollar |
1.8820658914375508 ns/iter |
2.113404225615793 ns/iter |
0.89 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.8821906213230866 ns/iter |
2.1187825806287766 ns/iter |
0.89 |
Regex_Caret_Period_Asterisk_Dollar |
1.7426561818922006 ns/iter |
1.729668777520609 ns/iter |
1.01 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.6703366935178592 ns/iter |
1.70124412781329 ns/iter |
0.98 |
Regex_Caret_X_Hyphen |
5.654424604650547 ns/iter |
6.236895490169206 ns/iter |
0.91 |
Regex_Period_Md_Dollar |
16.527987167657052 ns/iter |
17.859341307909865 ns/iter |
0.93 |
Regex_Caret_Slash_Period_Asterisk |
4.08165870255059 ns/iter |
4.63218446698526 ns/iter |
0.88 |
Regex_Caret_Period_Range_Dollar |
1.885554366412619 ns/iter |
2.1138101000813427 ns/iter |
0.89 |
Regex_Nested_Backtrack |
22.988061166254116 ns/iter |
25.85610061498455 ns/iter |
0.89 |
JSON_Array_Of_Objects_Unique |
314.9400895328427 ns/iter |
342.20918505638025 ns/iter |
0.92 |
JSON_Parse_1 |
3410.8361058181067 ns/iter |
5942.749610244918 ns/iter |
0.57 |
JSON_Parse_Real |
4957.837546238778 ns/iter |
8266.551975073546 ns/iter |
0.60 |
JSON_Parse_Decimal |
5131.058303809332 ns/iter |
8707.537277761796 ns/iter |
0.59 |
JSON_Parse_Schema_ISO_Language |
3027933.623376389 ns/iter |
3317614.6809518333 ns/iter |
0.91 |
JSON_Parse_Integer |
2845.1714664842743 ns/iter |
4303.471111898485 ns/iter |
0.66 |
JSON_Parse_String_NonSSO_Plain |
3424.6718201623357 ns/iter |
5675.654950374874 ns/iter |
0.60 |
JSON_Parse_String_SSO_Plain |
1637.6802666398908 ns/iter |
2388.5492506913647 ns/iter |
0.69 |
JSON_Parse_String_Escape_Heavy |
15173.76717953079 ns/iter |
18963.896696812375 ns/iter |
0.80 |
JSON_Parse_Object_Short_Keys |
5144.368763269368 ns/iter |
6722.220841045775 ns/iter |
0.77 |
JSON_Parse_Object_Scalar_Properties |
2676.8836278369577 ns/iter |
3494.0638155862716 ns/iter |
0.77 |
JSON_Parse_Object_Array_Properties |
3241.4306349351878 ns/iter |
5383.029055620651 ns/iter |
0.60 |
JSON_Parse_Object_Object_Properties |
3260.846228963119 ns/iter |
5850.157527434678 ns/iter |
0.56 |
JSON_Parse_Nested_Containers |
26158.594828551144 ns/iter |
52156.20419999141 ns/iter |
0.50 |
JSON_From_String_Copy |
22.583329696573287 ns/iter |
23.236038032591313 ns/iter |
0.97 |
JSON_From_String_Temporary |
18.2380917083851 ns/iter |
24.161042068908078 ns/iter |
0.75 |
JSON_Number_To_Double |
30.840959426661524 ns/iter |
36.39027963718112 ns/iter |
0.85 |
JSON_Object_At_Last_Key/8 |
3.532342634165317 ns/iter |
3.974459521380905 ns/iter |
0.89 |
JSON_Object_At_Last_Key/32 |
10.998091741747125 ns/iter |
12.722703220175301 ns/iter |
0.86 |
JSON_Object_At_Last_Key/128 |
50.39412231067537 ns/iter |
58.019103117028386 ns/iter |
0.87 |
JSON_Object_At_Last_Key/512 |
173.50239257611014 ns/iter |
192.41225546205916 ns/iter |
0.90 |
JSON_Fast_Hash_Helm_Chart_Lock |
54.3839362820569 ns/iter |
58.57123792250916 ns/iter |
0.93 |
JSON_Equality_Helm_Chart_Lock |
123.74816940283482 ns/iter |
135.60742555862103 ns/iter |
0.91 |
JSON_Divisible_By_Decimal |
161.9211802800155 ns/iter |
179.1944909529645 ns/iter |
0.90 |
JSON_String_Equal/10 |
6.877687418935981 ns/iter |
6.8097200717137785 ns/iter |
1.01 |
JSON_String_Equal/100 |
6.478026948161024 ns/iter |
6.536238848377875 ns/iter |
0.99 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7347907147933389 ns/iter |
0.34508046566738715 ns/iter |
2.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.671012972350619 ns/iter |
3.4890849467996654 ns/iter |
1.05 |
JSON_String_Fast_Hash/10 |
2.905833336224832 ns/iter |
2.849216899348344 ns/iter |
1.02 |
JSON_String_Fast_Hash/100 |
2.5452077941899103 ns/iter |
1.9976175129510327 ns/iter |
1.27 |
JSON_String_Key_Hash/10 |
1.303062853088231 ns/iter |
1.684160182852195 ns/iter |
0.77 |
JSON_String_Key_Hash/100 |
2.1157192954093462 ns/iter |
2.169263199565051 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Same_Length |
2.20831984028091 ns/iter |
2.6681134190412172 ns/iter |
0.83 |
JSON_Object_Defines_Miss_Too_Small |
2.205316102189262 ns/iter |
2.6621717183971856 ns/iter |
0.83 |
JSON_Object_Defines_Miss_Too_Large |
2.1977851684303906 ns/iter |
2.6968256522164804 ns/iter |
0.81 |
Pointer_Object_Traverse |
13.058851554780249 ns/iter |
18.228473635428355 ns/iter |
0.72 |
Pointer_Object_Try_Traverse |
21.54698393853272 ns/iter |
18.28696892059247 ns/iter |
1.18 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
144.46205356045226 ns/iter |
205.07035495577338 ns/iter |
0.70 |
Pointer_Walker_Schema_ISO_Language |
1964068.5027174305 ns/iter |
1635816.4183165317 ns/iter |
1.20 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
906846.8634686746 ns/iter |
1103091.1341652523 ns/iter |
0.82 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1605826.8321513375 ns/iter |
1273617.1563024034 ns/iter |
1.26 |
Pointer_Position_Tracker_Get_Deeply_Nested |
338.19287879776414 ns/iter |
404.6486491696015 ns/iter |
0.84 |
URITemplateRouter_Create |
23639.273602461275 ns/iter |
24476.910634148633 ns/iter |
0.97 |
URITemplateRouter_Match |
161.99750143719876 ns/iter |
177.68583788685208 ns/iter |
0.91 |
URITemplateRouter_Match_BasePath |
181.46215375371503 ns/iter |
208.91296125649814 ns/iter |
0.87 |
URITemplateRouterView_Restore |
10968.612950652847 ns/iter |
14536.14298411128 ns/iter |
0.75 |
URITemplateRouterView_Match |
121.04419001441103 ns/iter |
159.20011679035386 ns/iter |
0.76 |
URITemplateRouterView_Match_BasePath |
137.2308738592113 ns/iter |
183.30947000968928 ns/iter |
0.75 |
URITemplateRouterView_Arguments |
375.038978548487 ns/iter |
700.9063817810269 ns/iter |
0.54 |
JSONL_Parse_Large |
11474061.74074048 ns/iter |
14519288.187500479 ns/iter |
0.79 |
JSONL_Parse_Large_GZIP |
12203790.210526023 ns/iter |
13504865.840000093 ns/iter |
0.90 |
HTML_Build_Table_100000 |
60233270.80000627 ns/iter |
40186387.23529393 ns/iter |
1.50 |
HTML_Render_Table_100000 |
3290690.6779665193 ns/iter |
2354088.036290411 ns/iter |
1.40 |
GZIP_Compress_ISO_Language_Set_3_Locations |
24598877.964288183 ns/iter |
32995156.76190995 ns/iter |
0.75 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
5613127.798657946 ns/iter |
4034692.005025227 ns/iter |
1.39 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1628162.1612244395 ns/iter |
1812805.138587484 ns/iter |
0.90 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
250044.26870006835 ns/iter |
300812.11781488656 ns/iter |
0.83 |
JOSE_VerifySignature_RS256 |
20205.826975911114 ns/iter |
25146.306152875783 ns/iter |
0.80 |
JOSE_VerifySignature_ES512 |
904209.0309278427 ns/iter |
1252728.7857142172 ns/iter |
0.72 |
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: b1b15d1 | Previous: e1185a1 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.5506000971401757 ns/iter |
2.4934915190987095 ns/iter |
1.02 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.180289323649153 ns/iter |
2.1796208112950812 ns/iter |
1.00 |
Regex_Period_Asterisk |
2.180407591446168 ns/iter |
2.179649961265424 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
2.491255627729462 ns/iter |
2.491751874134214 ns/iter |
1.00 |
Regex_Period_Plus |
3.114508500126609 ns/iter |
3.1134161386402566 ns/iter |
1.00 |
Regex_Period |
2.8029744636499476 ns/iter |
2.816568941941417 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
2.807951719261987 ns/iter |
2.802179113159097 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.9788460396799046 ns/iter |
3.1122000301342907 ns/iter |
0.96 |
Regex_Caret_Period_Asterisk_Dollar |
2.4916596571512724 ns/iter |
3.7383387354080795 ns/iter |
0.67 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.1804376979396296 ns/iter |
3.421863042102589 ns/iter |
0.64 |
Regex_Caret_X_Hyphen |
6.235765796249661 ns/iter |
6.541634248397777 ns/iter |
0.95 |
Regex_Period_Md_Dollar |
28.822782131819075 ns/iter |
28.80553242848361 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
6.227236378070244 ns/iter |
5.915070700605859 ns/iter |
1.05 |
Regex_Caret_Period_Range_Dollar |
3.747988287547597 ns/iter |
2.4912799887066233 ns/iter |
1.50 |
Regex_Nested_Backtrack |
37.857871301299184 ns/iter |
37.551829684523554 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
445.7746565659007 ns/iter |
440.2422713879683 ns/iter |
1.01 |
JSON_Parse_1 |
4918.615103660313 ns/iter |
4881.447566234115 ns/iter |
1.01 |
JSON_Parse_Real |
5149.627706426983 ns/iter |
5281.34607448102 ns/iter |
0.98 |
JSON_Parse_Decimal |
7590.220777513757 ns/iter |
7755.6654587642515 ns/iter |
0.98 |
JSON_Parse_Schema_ISO_Language |
3592032.505102164 ns/iter |
3575984.7005072995 ns/iter |
1.00 |
JSON_Parse_Integer |
3744.683236295301 ns/iter |
3767.2476236937455 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
5132.625589708916 ns/iter |
5139.262783592357 ns/iter |
1.00 |
JSON_Parse_String_SSO_Plain |
2831.660228241967 ns/iter |
2848.521963025403 ns/iter |
0.99 |
JSON_Parse_String_Escape_Heavy |
14816.584936613717 ns/iter |
14499.461758368174 ns/iter |
1.02 |
JSON_Parse_Object_Short_Keys |
8014.978760434642 ns/iter |
7786.901557348384 ns/iter |
1.03 |
JSON_Parse_Object_Scalar_Properties |
4150.492319553387 ns/iter |
4025.4273625959163 ns/iter |
1.03 |
JSON_Parse_Object_Array_Properties |
5793.441769659881 ns/iter |
5542.1959089367365 ns/iter |
1.05 |
JSON_Parse_Object_Object_Properties |
5732.953951879179 ns/iter |
5455.567433058072 ns/iter |
1.05 |
JSON_Parse_Nested_Containers |
45096.06268946095 ns/iter |
45105.20666967634 ns/iter |
1.00 |
JSON_From_String_Copy |
20.644201807197916 ns/iter |
21.494923288086248 ns/iter |
0.96 |
JSON_From_String_Temporary |
18.082023758787763 ns/iter |
19.00126548388608 ns/iter |
0.95 |
JSON_Number_To_Double |
23.470861959688612 ns/iter |
23.414437865939274 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
3.739380014012576 ns/iter |
3.7014461846714863 ns/iter |
1.01 |
JSON_Object_At_Last_Key/32 |
11.916523839432589 ns/iter |
11.919228475596098 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
48.28002435429474 ns/iter |
48.26863232788302 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
382.8827886700892 ns/iter |
385.06651123066035 ns/iter |
0.99 |
JSON_Fast_Hash_Helm_Chart_Lock |
65.99374972637708 ns/iter |
66.3167613237436 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
159.83640821414573 ns/iter |
166.67949239441583 ns/iter |
0.96 |
JSON_Divisible_By_Decimal |
244.49282429780263 ns/iter |
241.99417665497126 ns/iter |
1.01 |
JSON_String_Equal/10 |
6.2416601131558895 ns/iter |
6.233411184289182 ns/iter |
1.00 |
JSON_String_Equal/100 |
6.861824374366244 ns/iter |
6.862196234662339 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9350981998521534 ns/iter |
0.9352883858174837 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.949392915332213 ns/iter |
14.9349934455686 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
2.8019429117769836 ns/iter |
2.8015089855868855 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.8118060900371433 ns/iter |
2.8033792538334854 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.6645008287523875 ns/iter |
2.6660431526304222 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
9.02894769429192 ns/iter |
9.023995019968988 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
2.6616463633064935 ns/iter |
2.5978994264969675 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Small |
3.755044907800172 ns/iter |
3.7463540490066984 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
2.6779411065195045 ns/iter |
2.6217211269953484 ns/iter |
1.02 |
Pointer_Object_Traverse |
24.02610874523438 ns/iter |
25.226181614641597 ns/iter |
0.95 |
Pointer_Object_Try_Traverse |
30.210649700631105 ns/iter |
30.193511638062215 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
207.472170552628 ns/iter |
197.18813331695154 ns/iter |
1.05 |
Pointer_Walker_Schema_ISO_Language |
1749948.5012467518 ns/iter |
1726124.482758696 ns/iter |
1.01 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1279975.8876811266 ns/iter |
1254437.8090090072 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1628544.9465116006 ns/iter |
1619242.9000001496 ns/iter |
1.01 |
Pointer_Position_Tracker_Get_Deeply_Nested |
697.0239962481907 ns/iter |
688.0118180441254 ns/iter |
1.01 |
URITemplateRouter_Create |
33212.62127355249 ns/iter |
34931.096744453345 ns/iter |
0.95 |
URITemplateRouter_Match |
177.98715798681312 ns/iter |
179.0353961209884 ns/iter |
0.99 |
URITemplateRouter_Match_BasePath |
206.45346655761372 ns/iter |
208.08220205517802 ns/iter |
0.99 |
URITemplateRouterView_Restore |
8555.535289252875 ns/iter |
8512.609090046584 ns/iter |
1.01 |
URITemplateRouterView_Match |
142.05213138630288 ns/iter |
141.97356023012603 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
162.26031293990042 ns/iter |
162.1536541795094 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
422.736880774683 ns/iter |
421.80701826451696 ns/iter |
1.00 |
JSONL_Parse_Large |
9971606.914284946 ns/iter |
9786646.788732367 ns/iter |
1.02 |
JSONL_Parse_Large_GZIP |
11576111.300000018 ns/iter |
11414836.852459004 ns/iter |
1.01 |
HTML_Build_Table_100000 |
68137794.30000296 ns/iter |
67928147.70000178 ns/iter |
1.00 |
HTML_Render_Table_100000 |
5504331.881889439 ns/iter |
5415457.865079509 ns/iter |
1.02 |
GZIP_Compress_ISO_Language_Set_3_Locations |
32655319.761905354 ns/iter |
32557067.809523776 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4298459.932926574 ns/iter |
4319369.838323107 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Schema |
1858174.8537232736 ns/iter |
1862367.906914855 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
358184.5404713089 ns/iter |
358549.0818414141 ns/iter |
1.00 |
JOSE_VerifySignature_RS256 |
58270.69804574134 ns/iter |
58131.73627744908 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
2440299.559440474 ns/iter |
2419831.934256193 ns/iter |
1.01 |
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: b1b15d1 | Previous: e1185a1 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.03124200000002 ns/iter |
5.10006599999997 ns/iter |
0.99 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.037011000001712 ns/iter |
5.036297999999988 ns/iter |
1.00 |
Regex_Period_Asterisk |
5.047194000001127 ns/iter |
5.06571699999995 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
5.051204999999754 ns/iter |
5.0266770000007455 ns/iter |
1.00 |
Regex_Period_Plus |
4.828249309113015 ns/iter |
4.831860670720735 ns/iter |
1.00 |
Regex_Period |
4.843222724295907 ns/iter |
4.821324130540532 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
4.828675559112977 ns/iter |
4.832671652863613 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.845780144745792 ns/iter |
4.837744443044434 ns/iter |
1.00 |
Regex_Caret_Period_Asterisk_Dollar |
5.030069000001731 ns/iter |
5.051800999999614 ns/iter |
1.00 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.03804196428551 ns/iter |
5.040910714285474 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
8.18793612416113 ns/iter |
8.223440588288536 ns/iter |
1.00 |
Regex_Period_Md_Dollar |
44.20997500000112 ns/iter |
44.32133397927266 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
7.86992968750003 ns/iter |
7.892550223215064 ns/iter |
1.00 |
Regex_Caret_Period_Range_Dollar |
5.65313599999854 ns/iter |
5.66055625000063 ns/iter |
1.00 |
Regex_Nested_Backtrack |
55.059490000007834 ns/iter |
54.781709999997474 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
518.7366000000111 ns/iter |
521.1277000000791 ns/iter |
1.00 |
JSON_Parse_1 |
8851.263610430147 ns/iter |
8923.338288667712 ns/iter |
0.99 |
JSON_Parse_Real |
16626.625000003718 ns/iter |
16329.183035718333 ns/iter |
1.02 |
JSON_Parse_Decimal |
11815.66093750064 ns/iter |
12053.621428573739 ns/iter |
0.98 |
JSON_Parse_Schema_ISO_Language |
7664469.999998699 ns/iter |
7778742.857143226 ns/iter |
0.99 |
JSON_Parse_Integer |
6160.264285715097 ns/iter |
6220.110714285252 ns/iter |
0.99 |
JSON_Parse_String_NonSSO_Plain |
7855.5055803570485 ns/iter |
7952.767857144494 ns/iter |
0.99 |
JSON_Parse_String_SSO_Plain |
3737.2034520464767 ns/iter |
3755.779575892301 ns/iter |
1.00 |
JSON_Parse_String_Escape_Heavy |
21689.698798680027 ns/iter |
22204.19374999949 ns/iter |
0.98 |
JSON_Parse_Object_Short_Keys |
13328.862147936943 ns/iter |
13361.344368994782 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
6863.861607141887 ns/iter |
6875.728571427788 ns/iter |
1.00 |
JSON_Parse_Object_Array_Properties |
11266.160714285434 ns/iter |
11362.33437500067 ns/iter |
0.99 |
JSON_Parse_Object_Object_Properties |
11439.62321428457 ns/iter |
11641.183928572576 ns/iter |
0.98 |
JSON_Parse_Nested_Containers |
78936.07142856394 ns/iter |
81041.5625000108 ns/iter |
0.97 |
JSON_From_String_Copy |
63.62794642855972 ns/iter |
63.82036830357509 ns/iter |
1.00 |
JSON_From_String_Temporary |
59.87829464286522 ns/iter |
59.61055000000215 ns/iter |
1.00 |
JSON_Number_To_Double |
122.50010714284697 ns/iter |
122.54121428570994 ns/iter |
1.00 |
JSON_Object_At_Last_Key/8 |
7.258952008926757 ns/iter |
7.261840178571789 ns/iter |
1.00 |
JSON_Object_At_Last_Key/32 |
23.391049962153875 ns/iter |
23.439197283045335 ns/iter |
1.00 |
JSON_Object_At_Last_Key/128 |
89.70580849528868 ns/iter |
90.02348214285202 ns/iter |
1.00 |
JSON_Object_At_Last_Key/512 |
423.81050818473796 ns/iter |
425.90620270861035 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
67.29618750000554 ns/iter |
66.60258035714556 ns/iter |
1.01 |
JSON_Equality_Helm_Chart_Lock |
301.0070422982743 ns/iter |
302.9958035714994 ns/iter |
0.99 |
JSON_Divisible_By_Decimal |
299.70935940745585 ns/iter |
299.9443147383614 ns/iter |
1.00 |
JSON_String_Equal/10 |
15.4035200205176 ns/iter |
15.542390625000735 ns/iter |
0.99 |
JSON_String_Equal/100 |
16.676185267857793 ns/iter |
16.72519296835541 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5203567857139273 ns/iter |
2.517088571428465 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.210700606202845 ns/iter |
14.228983928571129 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
4.704865189074281 ns/iter |
4.721964978732548 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
4.714947331953749 ns/iter |
4.726017198049116 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
5.349636607141812 ns/iter |
5.371504999998251 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
11.900066071429398 ns/iter |
11.892232142855619 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
4.104203124999373 ns/iter |
4.092985444601776 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
5.044070000001284 ns/iter |
5.145226385077246 ns/iter |
0.98 |
JSON_Object_Defines_Miss_Too_Large |
4.415390457908481 ns/iter |
4.419021292669959 ns/iter |
1.00 |
Pointer_Object_Traverse |
70.31994642856277 ns/iter |
70.26396428571502 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
68.12216517855875 ns/iter |
68.07050000000052 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
183.80658783984413 ns/iter |
190.51581409700466 ns/iter |
0.96 |
Pointer_Walker_Schema_ISO_Language |
8691455.555554561 ns/iter |
7275462.222221701 ns/iter |
1.19 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2442038.2575754323 ns/iter |
2385594.6428568587 ns/iter |
1.02 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3698024.5989296837 ns/iter |
3696472.192513998 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
517.3947321428127 ns/iter |
548.8600753198448 ns/iter |
0.94 |
URITemplateRouter_Create |
40871.666577371434 ns/iter |
42099.92165371138 ns/iter |
0.97 |
URITemplateRouter_Match |
233.320922620418 ns/iter |
233.19680433067364 ns/iter |
1.00 |
URITemplateRouter_Match_BasePath |
265.1328087112648 ns/iter |
265.64937346650606 ns/iter |
1.00 |
URITemplateRouterView_Restore |
32462.813481464444 ns/iter |
32222.918698842732 ns/iter |
1.01 |
URITemplateRouterView_Match |
179.41764817528588 ns/iter |
179.9533017815843 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
206.14281892215396 ns/iter |
205.87254661282032 ns/iter |
1.00 |
URITemplateRouterView_Arguments |
535.3903571428224 ns/iter |
539.6633928571403 ns/iter |
0.99 |
JSONL_Parse_Large |
32722814.285718758 ns/iter |
33361009.523808945 ns/iter |
0.98 |
JSONL_Parse_Large_GZIP |
33270152.38095382 ns/iter |
34193219.999997385 ns/iter |
0.97 |
HTML_Build_Table_100000 |
89141388.88889688 ns/iter |
89231714.28572069 ns/iter |
1.00 |
HTML_Render_Table_100000 |
7730966.666665356 ns/iter |
7704779.999999624 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35909336.84210397 ns/iter |
36006552.63156975 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9993370.31250036 ns/iter |
9965136.000000712 ns/iter |
1.00 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2107042.3188404306 ns/iter |
2100625.0000006333 ns/iter |
1.00 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
647997.3214285094 ns/iter |
624221.5178571899 ns/iter |
1.04 |
JOSE_VerifySignature_RS256 |
21320.646875004455 ns/iter |
21261.934374997796 ns/iter |
1.00 |
JOSE_VerifySignature_ES512 |
1539128.7946430664 ns/iter |
1534195.089286174 ns/iter |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com