Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds fast, allocation-light URI syntax validation helpers alongside the existing full Changes:
Technical Notes: The check-only path skips component materialization/unescaping and wraps parsing in 🤖 Was this summary useful? React with 👍 or 👎 |
There was a problem hiding this comment.
1 issue found across 3 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/core/uri/include/sourcemeta/core/uri.h">
<violation number="1" location="src/core/uri/include/sourcemeta/core/uri.h:472">
P3: Document this as URI-reference validation, not URI validation.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 88535f1 | Previous: 7997b04 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
3.11096560733902 ns/iter |
3.119816962872576 ns/iter |
1.00 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
3.1108523034245406 ns/iter |
3.1097760789656554 ns/iter |
1.00 |
Regex_Period_Asterisk |
3.1112474306339264 ns/iter |
3.1100769116781968 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
3.127940271506063 ns/iter |
3.130099169921663 ns/iter |
1.00 |
Regex_Period_Plus |
3.101991613259919 ns/iter |
3.0232015893220714 ns/iter |
1.03 |
Regex_Period |
2.8979475779727517 ns/iter |
3.1105725792459555 ns/iter |
0.93 |
Regex_Caret_Period_Plus_Dollar |
3.112120499807929 ns/iter |
3.1101701025730546 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.1010274999353378 ns/iter |
3.144877700415542 ns/iter |
0.99 |
Regex_Caret_Period_Asterisk_Dollar |
3.423061282152876 ns/iter |
3.1106377878579994 ns/iter |
1.10 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.422582793484833 ns/iter |
3.1116457878661437 ns/iter |
1.10 |
Regex_Caret_X_Hyphen |
12.442101229843448 ns/iter |
6.2251840030746965 ns/iter |
2.00 |
Regex_Period_Md_Dollar |
27.19264596843808 ns/iter |
27.26419900590121 ns/iter |
1.00 |
Regex_Caret_Slash_Period_Asterisk |
7.158581095664343 ns/iter |
5.929018159020219 ns/iter |
1.21 |
Regex_Caret_Period_Range_Dollar |
3.7450749551854683 ns/iter |
3.1127432285149763 ns/iter |
1.20 |
Regex_Nested_Backtrack |
49.35435946303202 ns/iter |
48.870370820451065 ns/iter |
1.01 |
JSON_Array_Of_Objects_Unique |
428.8515824347847 ns/iter |
436.2601442014702 ns/iter |
0.98 |
JSON_Parse_1 |
6188.233295078039 ns/iter |
6022.872158604101 ns/iter |
1.03 |
JSON_Parse_Real |
11175.245620485795 ns/iter |
11091.808578643162 ns/iter |
1.01 |
JSON_Parse_Decimal |
11454.143766322866 ns/iter |
11154.641977277808 ns/iter |
1.03 |
JSON_Parse_Schema_ISO_Language |
3613498.4455955164 ns/iter |
3622482.3865978513 ns/iter |
1.00 |
JSON_Fast_Hash_Helm_Chart_Lock |
61.91968217636436 ns/iter |
61.92589879021598 ns/iter |
1.00 |
JSON_Equality_Helm_Chart_Lock |
160.86766457880339 ns/iter |
160.62832066593182 ns/iter |
1.00 |
JSON_Divisible_By_Decimal |
586.1039117061003 ns/iter |
590.709838187603 ns/iter |
0.99 |
JSON_String_Equal/10 |
6.234698366528198 ns/iter |
7.159126292330258 ns/iter |
0.87 |
JSON_String_Equal/100 |
6.872536513412445 ns/iter |
6.857847858725118 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.9346372089107646 ns/iter |
0.9352202665580231 ns/iter |
1.00 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
14.79725428160829 ns/iter |
10.266020296360905 ns/iter |
1.44 |
JSON_String_Fast_Hash/10 |
2.489296552317173 ns/iter |
2.4897839004712385 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
2.4897311238290163 ns/iter |
2.4881089100485148 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
2.7134706665899064 ns/iter |
2.1807353601291246 ns/iter |
1.24 |
JSON_String_Key_Hash/100 |
9.020688219551717 ns/iter |
6.534674091098177 ns/iter |
1.38 |
JSON_Object_Defines_Miss_Same_Length |
3.740624063863124 ns/iter |
3.7383920442476897 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.7373323499703615 ns/iter |
3.736848427153441 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Large |
3.7378660967587796 ns/iter |
3.745380709646379 ns/iter |
1.00 |
Pointer_Object_Traverse |
27.27594998596545 ns/iter |
27.294995466108585 ns/iter |
1.00 |
Pointer_Object_Try_Traverse |
28.217696601031623 ns/iter |
28.210990723522123 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
205.5875001580173 ns/iter |
159.9572686300546 ns/iter |
1.29 |
Pointer_Walker_Schema_ISO_Language |
3012400.557939793 ns/iter |
3715518.3031910732 ns/iter |
0.81 |
Schema_Frame_WoT_References |
4786227.157534204 ns/iter |
4903053.258741155 ns/iter |
0.98 |
Schema_Frame_OMC_References |
19832894.657143436 ns/iter |
19928264.05714173 ns/iter |
1.00 |
Schema_Frame_OMC_Locations |
19256887.189188804 ns/iter |
18356655.28947354 ns/iter |
1.05 |
Schema_Frame_ISO_Language_Locations |
101453689.0000007 ns/iter |
100535116.0000032 ns/iter |
1.01 |
Schema_Frame_KrakenD_References |
38834940.16666747 ns/iter |
38129519.83333177 ns/iter |
1.02 |
Schema_Frame_KrakenD_Reachable |
582835867.0000852 ns/iter |
563453654.9999894 ns/iter |
1.03 |
Schema_Iterator_ISO_Language |
2245611.4083599453 ns/iter |
2293388.999999956 ns/iter |
0.98 |
Schema_Frame_ISO_Language_Locations_To_JSON |
133049535.99998726 ns/iter |
136688443.49999177 ns/iter |
0.97 |
Schema_Tracker_ISO_Language |
27548304.840001944 ns/iter |
26004258.29629566 ns/iter |
1.06 |
Schema_Tracker_ISO_Language_To_JSON |
23975001.566668652 ns/iter |
23042258.161287848 ns/iter |
1.04 |
Schema_Format_ISO_Language_To_JSON |
110017469.166678 ns/iter |
106769739.3333257 ns/iter |
1.03 |
Schema_Bundle_Meta_2020_12 |
1566532.2292107611 ns/iter |
1589952.5158389076 ns/iter |
0.99 |
Schema_Frame_Many_Resources_References |
362919483.4999794 ns/iter |
356058485.9999949 ns/iter |
1.02 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
217684973.66667816 ns/iter |
214727127.66668186 ns/iter |
1.01 |
Alterschema_Check_Readibility_OMC |
31886045.545454845 ns/iter |
32238828.22726926 ns/iter |
0.99 |
Alterschema_Apply_Readibility_KrakenD |
604339294.0000558 ns/iter |
585044223.9999439 ns/iter |
1.03 |
EditorSchema_ForEditor_EmbeddedResources |
13445040.826920917 ns/iter |
13626156.725489207 ns/iter |
0.99 |
URITemplateRouter_Create |
17191.584205378746 ns/iter |
17630.926341415958 ns/iter |
0.98 |
URITemplateRouter_Match |
175.84489594389203 ns/iter |
175.46740257036888 ns/iter |
1.00 |
URITemplateRouterView_Restore |
6855.68108867318 ns/iter |
6906.962248272569 ns/iter |
0.99 |
URITemplateRouterView_Match |
150.93190055135676 ns/iter |
151.89795429133125 ns/iter |
0.99 |
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: 88535f1 | Previous: 7997b04 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
1.8022514949216832 ns/iter |
2.2486446206591233 ns/iter |
0.80 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.806147616449254 ns/iter |
2.179573043118758 ns/iter |
0.83 |
Regex_Period_Asterisk |
1.7873951684957088 ns/iter |
2.1804067169296086 ns/iter |
0.82 |
Regex_Group_Period_Asterisk_Group |
1.9012800663356537 ns/iter |
2.3799269985136764 ns/iter |
0.80 |
Regex_Period_Plus |
2.2210497572271164 ns/iter |
2.768894340807892 ns/iter |
0.80 |
Regex_Period |
2.099412350831994 ns/iter |
2.7008449680199926 ns/iter |
0.78 |
Regex_Caret_Period_Plus_Dollar |
2.0404750289549884 ns/iter |
3.046207479051932 ns/iter |
0.67 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.0438624405773496 ns/iter |
2.8632287715178064 ns/iter |
0.71 |
Regex_Caret_Period_Asterisk_Dollar |
1.7230220071440872 ns/iter |
2.2654267826838512 ns/iter |
0.76 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.7304510642776458 ns/iter |
2.304063954960205 ns/iter |
0.75 |
Regex_Caret_X_Hyphen |
8.449200888957293 ns/iter |
7.451197079405683 ns/iter |
1.13 |
Regex_Period_Md_Dollar |
24.109842746732397 ns/iter |
30.65153323082832 ns/iter |
0.79 |
Regex_Caret_Slash_Period_Asterisk |
5.274942326610463 ns/iter |
6.412705282991946 ns/iter |
0.82 |
Regex_Caret_Period_Range_Dollar |
2.2392762389433933 ns/iter |
2.4589395113159083 ns/iter |
0.91 |
Regex_Nested_Backtrack |
29.717871498813395 ns/iter |
34.90833834651722 ns/iter |
0.85 |
JSON_Array_Of_Objects_Unique |
393.7739987210725 ns/iter |
470.71681459395984 ns/iter |
0.84 |
JSON_Parse_1 |
5248.506520053359 ns/iter |
5992.2933622428145 ns/iter |
0.88 |
JSON_Parse_Real |
6719.827836201625 ns/iter |
8916.071695285764 ns/iter |
0.75 |
JSON_Parse_Decimal |
8192.893343543341 ns/iter |
11137.626270430117 ns/iter |
0.74 |
JSON_Parse_Schema_ISO_Language |
4193103.2848479487 ns/iter |
5033644.522521721 ns/iter |
0.83 |
JSON_Fast_Hash_Helm_Chart_Lock |
62.071705086654134 ns/iter |
81.89875059598255 ns/iter |
0.76 |
JSON_Equality_Helm_Chart_Lock |
149.0570461242084 ns/iter |
178.89599552308772 ns/iter |
0.83 |
JSON_Divisible_By_Decimal |
503.64225269462827 ns/iter |
578.2001348680201 ns/iter |
0.87 |
JSON_String_Equal/10 |
7.477188477129793 ns/iter |
8.616279373861792 ns/iter |
0.87 |
JSON_String_Equal/100 |
6.590716889384602 ns/iter |
9.184370889280165 ns/iter |
0.72 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7734497586377054 ns/iter |
1.0259361874688506 ns/iter |
0.75 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
3.297572678078331 ns/iter |
4.5306642953477185 ns/iter |
0.73 |
JSON_String_Fast_Hash/10 |
2.3534419078778335 ns/iter |
2.828147418037455 ns/iter |
0.83 |
JSON_String_Fast_Hash/100 |
1.9219733766568121 ns/iter |
2.4412671799227295 ns/iter |
0.79 |
JSON_String_Key_Hash/10 |
1.293176062609388 ns/iter |
1.8616769499050085 ns/iter |
0.69 |
JSON_String_Key_Hash/100 |
2.0099605489183667 ns/iter |
2.979433187515945 ns/iter |
0.67 |
JSON_Object_Defines_Miss_Same_Length |
2.26075223757235 ns/iter |
2.908017735275732 ns/iter |
0.78 |
JSON_Object_Defines_Miss_Too_Small |
2.2892558610792686 ns/iter |
2.8862777392460672 ns/iter |
0.79 |
JSON_Object_Defines_Miss_Too_Large |
2.2527079590594417 ns/iter |
2.8097823417096777 ns/iter |
0.80 |
Pointer_Object_Traverse |
14.620280996234415 ns/iter |
19.560465525452596 ns/iter |
0.75 |
Pointer_Object_Try_Traverse |
20.081184477496723 ns/iter |
28.14519304739347 ns/iter |
0.71 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
145.90463014686384 ns/iter |
218.47527550349284 ns/iter |
0.67 |
Pointer_Walker_Schema_ISO_Language |
3638391.6190480986 ns/iter |
5582336.02150575 ns/iter |
0.65 |
Schema_Frame_WoT_References |
4932357.344632486 ns/iter |
5796221.311476208 ns/iter |
0.85 |
Schema_Frame_OMC_References |
23878120.53571484 ns/iter |
33483132.90476177 ns/iter |
0.71 |
Schema_Frame_OMC_Locations |
20778538.96773905 ns/iter |
31414697.94999239 ns/iter |
0.66 |
Schema_Frame_ISO_Language_Locations |
69059513.88888651 ns/iter |
102798520.83332723 ns/iter |
0.67 |
Schema_Frame_KrakenD_References |
47680741.66666641 ns/iter |
61056266.59998506 ns/iter |
0.78 |
Schema_Frame_KrakenD_Reachable |
373288687.5000076 ns/iter |
572178249.999979 ns/iter |
0.65 |
Schema_Iterator_ISO_Language |
1789789.2901558743 ns/iter |
2755377.1553400047 ns/iter |
0.65 |
Schema_Frame_ISO_Language_Locations_To_JSON |
110932624.99998672 ns/iter |
131694322.74997917 ns/iter |
0.84 |
Schema_Tracker_ISO_Language |
35472820.210531466 ns/iter |
42435647.05883032 ns/iter |
0.84 |
Schema_Tracker_ISO_Language_To_JSON |
13498804.179998841 ns/iter |
20796543.84210459 ns/iter |
0.65 |
Schema_Format_ISO_Language_To_JSON |
71874279.20007394 ns/iter |
114770724.9999712 ns/iter |
0.63 |
Schema_Bundle_Meta_2020_12 |
1073063.8642543377 ns/iter |
1531007.9103301177 ns/iter |
0.70 |
Schema_Frame_Many_Resources_References |
251860083.33328876 ns/iter |
395090458.499908 ns/iter |
0.64 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
139864458.25003102 ns/iter |
202019624.99999127 ns/iter |
0.69 |
Alterschema_Check_Readibility_OMC |
28899901.54545268 ns/iter |
42199127.562511764 ns/iter |
0.68 |
Alterschema_Apply_Readibility_KrakenD |
500305291.4998989 ns/iter |
624803000.0001563 ns/iter |
0.80 |
EditorSchema_ForEditor_EmbeddedResources |
9813928.77630888 ns/iter |
14179469.042554706 ns/iter |
0.69 |
URITemplateRouter_Create |
16554.828809842133 ns/iter |
23235.07223113585 ns/iter |
0.71 |
URITemplateRouter_Match |
157.88119651505016 ns/iter |
209.42664961534422 ns/iter |
0.75 |
URITemplateRouterView_Restore |
13649.488014366487 ns/iter |
18000.465303452354 ns/iter |
0.76 |
URITemplateRouterView_Match |
125.69478338182272 ns/iter |
171.3650680351477 ns/iter |
0.73 |
This comment was automatically generated by workflow using github-action-benchmark.
|
augment review |
URI::check faster check methodURI::is_uri[_reference] faster check method
src/core/uri/parse.cc
Outdated
| } else { | ||
| const auto port_value = parse_port<false>(input, position); | ||
| if (port_value.has_value()) { | ||
| port = port_value.value(); |
There was a problem hiding this comment.
parse_port<false> yields an unsigned long, but it’s assigned into std::optional<std::uint32_t> port without any range check. Ports > UINT32_MAX will silently truncate/wrap and make the parsed URI (and recompose()) inconsistent with the input.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
1 issue found across 2 files (changes from recent commits).
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/core/uri/parse.cc">
<violation number="1" location="src/core/uri/parse.cc:478">
P2: Apply the port overflow validation in `CheckOnly` mode too; otherwise `URI::is_uri[_reference]` can return true for URIs that `URI` parsing rejects.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
Benchmark (windows/msvc)
Details
| Benchmark suite | Current: 88535f1 | Previous: 7997b04 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
4.074629663359792 ns/iter |
4.150228457967548 ns/iter |
0.98 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
4.008491332127902 ns/iter |
4.102029293040352 ns/iter |
0.98 |
Regex_Period_Asterisk |
4.263445259894735 ns/iter |
4.732605814136355 ns/iter |
0.90 |
Regex_Group_Period_Asterisk_Group |
3.911026227677742 ns/iter |
4.4050986945409 ns/iter |
0.89 |
Regex_Period_Plus |
4.157861607142013 ns/iter |
4.431050457870527 ns/iter |
0.94 |
Regex_Period |
3.915041852679784 ns/iter |
4.4087781249999125 ns/iter |
0.89 |
Regex_Caret_Period_Plus_Dollar |
3.775337611607706 ns/iter |
4.111837230306641 ns/iter |
0.92 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.25095834631593 ns/iter |
3.787752850379193 ns/iter |
1.12 |
Regex_Caret_Period_Asterisk_Dollar |
3.9320290178565136 ns/iter |
4.41914875000009 ns/iter |
0.89 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
3.5535549274828018 ns/iter |
4.116069293064548 ns/iter |
0.86 |
Regex_Caret_X_Hyphen |
6.8599832589301615 ns/iter |
7.583992187498723 ns/iter |
0.90 |
Regex_Period_Md_Dollar |
35.39395836553636 ns/iter |
35.8088589119951 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
6.570998214286305 ns/iter |
7.237600446430291 ns/iter |
0.91 |
Regex_Caret_Period_Range_Dollar |
4.106163176975172 ns/iter |
4.117441964285159 ns/iter |
1.00 |
Regex_Nested_Backtrack |
87.1954112859036 ns/iter |
99.02280361505592 ns/iter |
0.88 |
JSON_Array_Of_Objects_Unique |
484.3095682764445 ns/iter |
459.62378983286476 ns/iter |
1.05 |
JSON_Parse_1 |
8809.364243909427 ns/iter |
8914.51897321411 ns/iter |
0.99 |
JSON_Parse_Real |
14025.316404839386 ns/iter |
16432.15476716473 ns/iter |
0.85 |
JSON_Parse_Decimal |
15357.493270118997 ns/iter |
15471.035714286683 ns/iter |
0.99 |
JSON_Parse_Schema_ISO_Language |
6359673.333332062 ns/iter |
6028406.25000007 ns/iter |
1.05 |
JSON_Fast_Hash_Helm_Chart_Lock |
58.741848214286364 ns/iter |
57.333419642852895 ns/iter |
1.02 |
JSON_Equality_Helm_Chart_Lock |
283.4051558700054 ns/iter |
260.09200000000226 ns/iter |
1.09 |
JSON_Divisible_By_Decimal |
1111.717539411679 ns/iter |
1142.8432142858062 ns/iter |
0.97 |
JSON_String_Equal/10 |
11.743448214287714 ns/iter |
12.363990625001264 ns/iter |
0.95 |
JSON_String_Equal/100 |
13.165266071431299 ns/iter |
13.02443749999936 ns/iter |
1.01 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.787972166375429 ns/iter |
1.8907802695455422 ns/iter |
0.95 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
11.927116071429314 ns/iter |
12.596846428570935 ns/iter |
0.95 |
JSON_String_Fast_Hash/10 |
3.218537137110329 ns/iter |
3.178536160714681 ns/iter |
1.01 |
JSON_String_Fast_Hash/100 |
3.287434223886723 ns/iter |
3.1427535714284107 ns/iter |
1.05 |
JSON_String_Key_Hash/10 |
3.901536272321593 ns/iter |
4.0984464285718865 ns/iter |
0.95 |
JSON_String_Key_Hash/100 |
17.316722875110734 ns/iter |
16.634959821425962 ns/iter |
1.04 |
JSON_Object_Defines_Miss_Same_Length |
3.9934792928461027 ns/iter |
4.1494151051237065 ns/iter |
0.96 |
JSON_Object_Defines_Miss_Too_Small |
3.9860141589045077 ns/iter |
3.787209636093506 ns/iter |
1.05 |
JSON_Object_Defines_Miss_Too_Large |
4.979432000000088 ns/iter |
5.06103800000119 ns/iter |
0.98 |
Pointer_Object_Traverse |
43.06433125000808 ns/iter |
41.124441964284536 ns/iter |
1.05 |
Pointer_Object_Try_Traverse |
55.00849107142309 ns/iter |
55.394375000007905 ns/iter |
0.99 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
170.04886406582156 ns/iter |
187.75476480499046 ns/iter |
0.91 |
Pointer_Walker_Schema_ISO_Language |
12073978.124998774 ns/iter |
11342278.12499944 ns/iter |
1.06 |
Schema_Frame_WoT_References |
10228970.66666701 ns/iter |
10022544.000000076 ns/iter |
1.02 |
Schema_Frame_OMC_References |
44213306.25000053 ns/iter |
42813770.58824172 ns/iter |
1.03 |
Schema_Frame_OMC_Locations |
39792335.29411003 ns/iter |
39057005.5555549 ns/iter |
1.02 |
Schema_Frame_ISO_Language_Locations |
205296800.00004193 ns/iter |
196152066.66662744 ns/iter |
1.05 |
Schema_Frame_KrakenD_References |
90673928.57143985 ns/iter |
99303214.28571784 ns/iter |
0.91 |
Schema_Frame_KrakenD_Reachable |
530225799.9999256 ns/iter |
517503799.9999859 ns/iter |
1.02 |
Schema_Iterator_ISO_Language |
4419388.125000978 ns/iter |
4284818.674698245 ns/iter |
1.03 |
Schema_Frame_ISO_Language_Locations_To_JSON |
284935550.0000001 ns/iter |
258934333.3333242 ns/iter |
1.10 |
Schema_Tracker_ISO_Language |
46289906.66666747 ns/iter |
46151026.66666643 ns/iter |
1.00 |
Schema_Tracker_ISO_Language_To_JSON |
54928890.90909226 ns/iter |
52534809.99999738 ns/iter |
1.05 |
Schema_Format_ISO_Language_To_JSON |
200963233.3332926 ns/iter |
197668000.0000215 ns/iter |
1.02 |
Schema_Bundle_Meta_2020_12 |
2629260.714283126 ns/iter |
2729218.4738900075 ns/iter |
0.96 |
Schema_Frame_Many_Resources_References |
1454111400.0001016 ns/iter |
1490423699.9998374 ns/iter |
0.98 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
316705400.0000462 ns/iter |
324386249.999975 ns/iter |
0.98 |
Alterschema_Check_Readibility_OMC |
60054109.09090807 ns/iter |
60225790.00000405 ns/iter |
1.00 |
Alterschema_Apply_Readibility_KrakenD |
990329199.9999056 ns/iter |
988497600.0000733 ns/iter |
1.00 |
EditorSchema_ForEditor_EmbeddedResources |
27370195.99998348 ns/iter |
27335273.076906003 ns/iter |
1.00 |
URITemplateRouter_Create |
20951.253554640003 ns/iter |
23147.98272340657 ns/iter |
0.91 |
URITemplateRouter_Match |
211.41243750001595 ns/iter |
214.7240000000039 ns/iter |
0.98 |
URITemplateRouterView_Restore |
24441.329895874744 ns/iter |
31400.547096992323 ns/iter |
0.78 |
URITemplateRouterView_Match |
153.2125177137313 ns/iter |
172.6850511326032 ns/iter |
0.89 |
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: 88535f1 | Previous: 7997b04 | Ratio |
|---|---|---|---|
URITemplateRouter_Create |
14557.276259265125 ns/iter |
14226.352574197343 ns/iter |
1.02 |
URITemplateRouter_Match |
178.51979986905275 ns/iter |
161.26550574930286 ns/iter |
1.11 |
URITemplateRouterView_Restore |
7969.179453212415 ns/iter |
7961.989820406787 ns/iter |
1.00 |
URITemplateRouterView_Match |
128.31840607915257 ns/iter |
130.02328311797336 ns/iter |
0.99 |
EditorSchema_ForEditor_EmbeddedResources |
14098945.729164332 ns/iter |
13642318.8823488 ns/iter |
1.03 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
220066798.3333157 ns/iter |
209277970.33338416 ns/iter |
1.05 |
Alterschema_Check_Readibility_OMC |
37618322.42104758 ns/iter |
33352701.57143506 ns/iter |
1.13 |
Alterschema_Apply_Readibility_KrakenD |
695849727.9997573 ns/iter |
599388257.9998627 ns/iter |
1.16 |
Schema_Frame_WoT_References |
5239688.300751136 ns/iter |
5162897.286764438 ns/iter |
1.01 |
Schema_Frame_OMC_References |
24006329.758619893 ns/iter |
21229886.606058493 ns/iter |
1.13 |
Schema_Frame_OMC_Locations |
22027273.129028358 ns/iter |
20198506.82352974 ns/iter |
1.09 |
Schema_Frame_ISO_Language_Locations |
110098043.33336131 ns/iter |
103453699.50001289 ns/iter |
1.06 |
Schema_Frame_KrakenD_References |
46174637.400008574 ns/iter |
39457833.00000332 ns/iter |
1.17 |
Schema_Frame_KrakenD_Reachable |
678467253.9999974 ns/iter |
588583605.0001671 ns/iter |
1.15 |
Schema_Iterator_ISO_Language |
2494297.114695349 ns/iter |
2391078.8847457543 ns/iter |
1.04 |
Schema_Frame_ISO_Language_Locations_To_JSON |
265612392.33334768 ns/iter |
250367211.99997675 ns/iter |
1.06 |
Schema_Tracker_ISO_Language |
32817043.571434453 ns/iter |
29407873.083329152 ns/iter |
1.12 |
Schema_Tracker_ISO_Language_To_JSON |
32851627.909084614 ns/iter |
28030096.200000115 ns/iter |
1.17 |
Schema_Format_ISO_Language_To_JSON |
116566667.49998598 ns/iter |
109025643.3333631 ns/iter |
1.07 |
Schema_Bundle_Meta_2020_12 |
1737190.3258620237 ns/iter |
1714875.8627339543 ns/iter |
1.01 |
Schema_Frame_Many_Resources_References |
404493969.99997586 ns/iter |
377259903.99997044 ns/iter |
1.07 |
Pointer_Object_Traverse |
26.7870966631856 ns/iter |
27.783254291392723 ns/iter |
0.96 |
Pointer_Object_Try_Traverse |
27.44112441163008 ns/iter |
27.41308130295583 ns/iter |
1.00 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
134.1953897780504 ns/iter |
165.0472964054767 ns/iter |
0.81 |
Pointer_Walker_Schema_ISO_Language |
3628781.590908726 ns/iter |
3473355.5922327284 ns/iter |
1.04 |
JSON_Array_Of_Objects_Unique |
371.70289998052175 ns/iter |
384.92608089492444 ns/iter |
0.97 |
JSON_Parse_1 |
8507.492891624961 ns/iter |
8438.712756531299 ns/iter |
1.01 |
JSON_Parse_Real |
12751.514037879588 ns/iter |
13741.232017240221 ns/iter |
0.93 |
JSON_Parse_Decimal |
18455.36696428533 ns/iter |
18045.9835735338 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
4871834.258741653 ns/iter |
4800516.794520487 ns/iter |
1.01 |
JSON_Fast_Hash_Helm_Chart_Lock |
60.469034675966235 ns/iter |
62.75490503304761 ns/iter |
0.96 |
JSON_Equality_Helm_Chart_Lock |
157.8712820400879 ns/iter |
158.26337629867623 ns/iter |
1.00 |
JSON_Divisible_By_Decimal |
575.4925522010363 ns/iter |
595.2943315742945 ns/iter |
0.97 |
JSON_String_Equal/10 |
6.351046909251518 ns/iter |
6.639081900604382 ns/iter |
0.96 |
JSON_String_Equal/100 |
6.977240384268159 ns/iter |
7.248079196687834 ns/iter |
0.96 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7467325246589096 ns/iter |
0.623518040510038 ns/iter |
1.20 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
32.96767002905413 ns/iter |
32.970212008299015 ns/iter |
1.00 |
JSON_String_Fast_Hash/10 |
0.9347935234648714 ns/iter |
0.9340800819828622 ns/iter |
1.00 |
JSON_String_Fast_Hash/100 |
0.9345328498346501 ns/iter |
0.9334126384298044 ns/iter |
1.00 |
JSON_String_Key_Hash/10 |
1.2474496953513465 ns/iter |
1.5573231828005083 ns/iter |
0.80 |
JSON_String_Key_Hash/100 |
12.444962295748825 ns/iter |
12.452047367240125 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Same_Length |
3.424178777589502 ns/iter |
3.424147247063242 ns/iter |
1.00 |
JSON_Object_Defines_Miss_Too_Small |
3.4290574482095977 ns/iter |
3.127720516554099 ns/iter |
1.10 |
JSON_Object_Defines_Miss_Too_Large |
3.4438202769679407 ns/iter |
3.112577703707643 ns/iter |
1.11 |
Regex_Lower_S_Or_Upper_S_Asterisk |
1.5576470227640635 ns/iter |
1.2439275769798117 ns/iter |
1.25 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.5565470887648418 ns/iter |
1.5571491811279043 ns/iter |
1.00 |
Regex_Period_Asterisk |
1.557341577874272 ns/iter |
1.5586367423516994 ns/iter |
1.00 |
Regex_Group_Period_Asterisk_Group |
1.5561430815847677 ns/iter |
1.5570528466756195 ns/iter |
1.00 |
Regex_Period_Plus |
1.5596007313555336 ns/iter |
1.5554338397337955 ns/iter |
1.00 |
Regex_Period |
1.5578241326814382 ns/iter |
1.5558346862086836 ns/iter |
1.00 |
Regex_Caret_Period_Plus_Dollar |
1.5574394479880151 ns/iter |
1.556523949584088 ns/iter |
1.00 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.250631370526487 ns/iter |
1.5562735710128124 ns/iter |
0.80 |
Regex_Caret_Period_Asterisk_Dollar |
1.2463396377447684 ns/iter |
1.5576202814086788 ns/iter |
0.80 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.2449520795604372 ns/iter |
1.2455557344810926 ns/iter |
1.00 |
Regex_Caret_X_Hyphen |
12.750982589596884 ns/iter |
12.123989100971283 ns/iter |
1.05 |
Regex_Period_Md_Dollar |
29.979710263336763 ns/iter |
30.13514949347563 ns/iter |
0.99 |
Regex_Caret_Slash_Period_Asterisk |
4.6674311521603284 ns/iter |
4.771941980607611 ns/iter |
0.98 |
Regex_Caret_Period_Range_Dollar |
1.5653591470300223 ns/iter |
1.5563844033003564 ns/iter |
1.01 |
Regex_Nested_Backtrack |
49.649749424252306 ns/iter |
51.12485836767524 ns/iter |
0.97 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com