Support serialising/deserializing the JSONPath class#2625
Conversation
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
🤖 Augment PR SummarySummary: This PR adds JSON (de)serialization support for the RFC 9535 Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
| -> std::optional<JSONPath>; | ||
|
|
||
| private: | ||
| JSON::String expression_; |
There was a problem hiding this comment.
Adding the new expression_ data member to the exported JSONPath class changes its size/layout, so if this project targets C++ ABI stability this is an ABI-breaking change that may need a version/SONAME bump (or similar mitigation).
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: 8b491f9 | Previous: b6461e6 | Ratio |
|---|---|---|---|
JOSE_VerifySignature_RS256 |
24400.392025737165 ns/iter |
18851.701196524544 ns/iter |
1.29 |
JOSE_VerifySignature_ES512 |
642966.9348623533 ns/iter |
421221.5936374649 ns/iter |
1.53 |
GZIP_Compress_ISO_Language_Set_3_Locations |
39263103.83333328 ns/iter |
23497218.499998476 ns/iter |
1.67 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4034313.356321778 ns/iter |
3173528.572727429 ns/iter |
1.27 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2283175.446254247 ns/iter |
1596630.1917808687 ns/iter |
1.43 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
277369.40157806774 ns/iter |
296751.4353191349 ns/iter |
0.93 |
HTML_Build_Table_100000 |
72050425.89999948 ns/iter |
41734144.68750281 ns/iter |
1.73 |
HTML_Render_Table_100000 |
1983974.985755128 ns/iter |
2735812.0664060516 ns/iter |
0.73 |
JSONLD_Catalog_Annotation_List_Populate |
1372171.5714284854 ns/iter |
1036891.8874074654 ns/iter |
1.32 |
JSONLD_Catalog_Materialize |
6838995.50980369 ns/iter |
5440190.325581777 ns/iter |
1.26 |
JSONL_Parse_Large |
12831711.074073626 ns/iter |
10443324.373135742 ns/iter |
1.23 |
JSONL_Parse_Large_GZIP |
14302766.816327602 ns/iter |
11551465.449999418 ns/iter |
1.24 |
URITemplateRouter_Create |
30295.049711378044 ns/iter |
22898.194070871254 ns/iter |
1.32 |
URITemplateRouter_Match |
146.55619649355666 ns/iter |
141.88064100826332 ns/iter |
1.03 |
URITemplateRouter_Match_BasePath |
173.59409097617066 ns/iter |
159.6194291939955 ns/iter |
1.09 |
URITemplateRouterView_Restore |
9850.777515364121 ns/iter |
2898.405366652874 ns/iter |
3.40 |
URITemplateRouterView_Match |
126.19561101817708 ns/iter |
98.51134670307219 ns/iter |
1.28 |
URITemplateRouterView_Match_BasePath |
144.47737892306964 ns/iter |
111.96228353914289 ns/iter |
1.29 |
URITemplateRouterView_Arguments |
470.59552407037137 ns/iter |
384.1613678434174 ns/iter |
1.22 |
JSONPath_Descendant_Filter_Nested |
1815.526673979992 ns/iter |
1159.7918279519236 ns/iter |
1.57 |
Pointer_Object_Traverse |
32.28218623091304 ns/iter |
23.7062386413754 ns/iter |
1.36 |
Pointer_Object_Try_Traverse |
26.063899917924818 ns/iter |
21.615603861733806 ns/iter |
1.21 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
166.26617972441224 ns/iter |
124.73591302164436 ns/iter |
1.33 |
Pointer_Walker_Schema_ISO_Language |
2901897.1722689075 ns/iter |
2754532.917682665 ns/iter |
1.05 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1934296.262430829 ns/iter |
1687667.3807229898 ns/iter |
1.15 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1641020.2833723743 ns/iter |
1477574.2552742274 ns/iter |
1.11 |
Pointer_Position_Tracker_Get_Deeply_Nested |
485.4360296301936 ns/iter |
444.45347909461657 ns/iter |
1.09 |
JSON_Array_Of_Objects_Unique |
440.35971200864293 ns/iter |
339.48755861951884 ns/iter |
1.30 |
JSON_Parse_1 |
9852.2630375955 ns/iter |
7617.633869070519 ns/iter |
1.29 |
JSON_Parse_Real |
7866.7610696760485 ns/iter |
5939.707386219175 ns/iter |
1.32 |
JSON_Parse_Decimal |
11203.930565543298 ns/iter |
8346.341461381824 ns/iter |
1.34 |
JSON_Parse_Schema_ISO_Language |
6852018.549020436 ns/iter |
5347280.415384585 ns/iter |
1.28 |
JSON_Parse_Integer |
5838.854969650085 ns/iter |
4108.83139582645 ns/iter |
1.42 |
JSON_Parse_String_NonSSO_Plain |
12356.211582515987 ns/iter |
9089.579909803817 ns/iter |
1.36 |
JSON_Parse_String_SSO_Plain |
4973.729132407248 ns/iter |
3891.6102622270714 ns/iter |
1.28 |
JSON_Parse_String_Escape_Heavy |
24125.875982084435 ns/iter |
20111.48683304709 ns/iter |
1.20 |
JSON_Parse_Object_Short_Keys |
14463.092895161657 ns/iter |
10271.275975892086 ns/iter |
1.41 |
JSON_Parse_Object_Scalar_Properties |
7706.462531219652 ns/iter |
5231.912021193791 ns/iter |
1.47 |
JSON_Parse_Object_Array_Properties |
13219.657734904325 ns/iter |
9506.895589949947 ns/iter |
1.39 |
JSON_Parse_Object_Object_Properties |
12573.707608540804 ns/iter |
9487.862155150273 ns/iter |
1.33 |
JSON_Parse_Nested_Containers |
102547.37576300047 ns/iter |
79235.69710014113 ns/iter |
1.29 |
JSON_From_String_Copy |
19.7734823495282 ns/iter |
15.389251464731595 ns/iter |
1.28 |
JSON_From_String_Temporary |
16.57611367552115 ns/iter |
12.58912063523191 ns/iter |
1.32 |
JSON_Number_To_Double |
20.053677772706518 ns/iter |
21.63526338245299 ns/iter |
0.93 |
JSON_Object_At_Last_Key/8 |
6.335233489743598 ns/iter |
5.607043335203787 ns/iter |
1.13 |
JSON_Object_At_Last_Key/32 |
23.5902091907174 ns/iter |
18.996147378336403 ns/iter |
1.24 |
JSON_Object_At_Last_Key/128 |
91.18632223297993 ns/iter |
70.74344912092698 ns/iter |
1.29 |
JSON_Object_At_Last_Key/512 |
377.94848114649415 ns/iter |
229.47728652363972 ns/iter |
1.65 |
JSON_Fast_Hash_Helm_Chart_Lock |
80.27853467643538 ns/iter |
62.66953739742585 ns/iter |
1.28 |
JSON_Equality_Helm_Chart_Lock |
153.22468490777305 ns/iter |
111.84225590997566 ns/iter |
1.37 |
JSON_Divisible_By_Decimal |
233.725885115838 ns/iter |
203.51186797651653 ns/iter |
1.15 |
JSON_String_Equal/10 |
5.406902387586282 ns/iter |
4.3437786380132986 ns/iter |
1.24 |
JSON_String_Equal/100 |
6.1114160752738815 ns/iter |
12.297981585004504 ns/iter |
0.50 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
0.7111008180109064 ns/iter |
0.8048526768066698 ns/iter |
0.88 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
21.986262408732976 ns/iter |
14.840008560656742 ns/iter |
1.48 |
JSON_String_Fast_Hash/10 |
2.5492566987500376 ns/iter |
2.9067723332886097 ns/iter |
0.88 |
JSON_String_Fast_Hash/100 |
2.549526677845696 ns/iter |
2.904301570324401 ns/iter |
0.88 |
JSON_String_Key_Hash/10 |
1.4065294373422617 ns/iter |
1.4000678759575873 ns/iter |
1.00 |
JSON_String_Key_Hash/100 |
14.759678707455134 ns/iter |
11.214468312808359 ns/iter |
1.32 |
JSON_Object_Defines_Miss_Same_Length |
3.1653551319755246 ns/iter |
2.5951016927397594 ns/iter |
1.22 |
JSON_Object_Defines_Miss_Too_Small |
3.516324404961436 ns/iter |
2.8515618384065795 ns/iter |
1.23 |
JSON_Object_Defines_Miss_Too_Large |
3.1650692709303168 ns/iter |
2.8149596059830015 ns/iter |
1.12 |
Regex_Lower_S_Or_Upper_S_Asterisk |
0.7034242537963487 ns/iter |
0.8446932599010806 ns/iter |
0.83 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.054859559897291 ns/iter |
0.8437814180135789 ns/iter |
1.25 |
Regex_Period_Asterisk |
0.7034801845720873 ns/iter |
0.883988412803049 ns/iter |
0.80 |
Regex_Group_Period_Asterisk_Group |
1.0549454631607977 ns/iter |
0.8439052355572431 ns/iter |
1.25 |
Regex_Period_Plus |
0.7032838374980103 ns/iter |
0.8445356991589091 ns/iter |
0.83 |
Regex_Period |
1.0555740248311023 ns/iter |
0.8421977148557377 ns/iter |
1.25 |
Regex_Caret_Period_Plus_Dollar |
0.7033593085457134 ns/iter |
0.8529900233061554 ns/iter |
0.82 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.0551796713530999 ns/iter |
0.8510377612832155 ns/iter |
1.24 |
Regex_Caret_Period_Asterisk_Dollar |
0.7032233299097588 ns/iter |
0.8437070021323769 ns/iter |
0.83 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.0549318904825238 ns/iter |
0.846182422810266 ns/iter |
1.25 |
Regex_Caret_X_Hyphen |
3.515633363639794 ns/iter |
2.806202599214112 ns/iter |
1.25 |
Regex_Period_Md_Dollar |
33.3883524280111 ns/iter |
15.71524893876563 ns/iter |
2.12 |
Regex_Caret_Slash_Period_Asterisk |
3.867173920994684 ns/iter |
2.809072277163218 ns/iter |
1.38 |
Regex_Caret_Period_Range_Dollar |
1.760117204626081 ns/iter |
1.3995591623528958 ns/iter |
1.26 |
Regex_Nested_Backtrack |
42.0964732133784 ns/iter |
30.338464979488116 ns/iter |
1.39 |
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: 8b491f9 | Previous: b6461e6 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.4840610760243034 ns/iter |
2.2273295028422866 ns/iter |
1.12 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.461445929764061 ns/iter |
2.1919515542330106 ns/iter |
1.12 |
Regex_Period_Asterisk |
2.46224736991478 ns/iter |
2.1985665561737506 ns/iter |
1.12 |
Regex_Group_Period_Asterisk_Group |
2.4624749213343344 ns/iter |
2.2061768610734975 ns/iter |
1.12 |
Regex_Period_Plus |
3.8666025690099524 ns/iter |
3.1149230682932614 ns/iter |
1.24 |
Regex_Period |
3.871775460347 ns/iter |
3.1148502054390845 ns/iter |
1.24 |
Regex_Caret_Period_Plus_Dollar |
3.515122679250219 ns/iter |
2.811344420711071 ns/iter |
1.25 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.5158734535606846 ns/iter |
2.8031408828650486 ns/iter |
1.25 |
Regex_Caret_Period_Asterisk_Dollar |
2.8134585693767593 ns/iter |
3.430897712141701 ns/iter |
0.82 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.8137998395321677 ns/iter |
3.425875684199286 ns/iter |
0.82 |
Regex_Caret_X_Hyphen |
6.68725676684493 ns/iter |
5.300451629430009 ns/iter |
1.26 |
Regex_Period_Md_Dollar |
26.348867172385088 ns/iter |
28.227333104244835 ns/iter |
0.93 |
Regex_Caret_Slash_Period_Asterisk |
7.73568580572901 ns/iter |
6.228712494198236 ns/iter |
1.24 |
Regex_Caret_Period_Range_Dollar |
4.569258008265862 ns/iter |
2.8049257623553574 ns/iter |
1.63 |
Regex_Nested_Backtrack |
38.174010986044735 ns/iter |
39.24022629097472 ns/iter |
0.97 |
JSON_Array_Of_Objects_Unique |
471.2167737953226 ns/iter |
423.73355640696946 ns/iter |
1.11 |
JSON_Parse_1 |
4719.50294002617 ns/iter |
4852.515767767187 ns/iter |
0.97 |
JSON_Parse_Real |
5374.78620652407 ns/iter |
5331.036583153404 ns/iter |
1.01 |
JSON_Parse_Decimal |
7727.87818569602 ns/iter |
7597.9001767735335 ns/iter |
1.02 |
JSON_Parse_Schema_ISO_Language |
3555961.4517766475 ns/iter |
3467893.8861382916 ns/iter |
1.03 |
JSON_Parse_Integer |
4085.037553591687 ns/iter |
3833.898006404332 ns/iter |
1.07 |
JSON_Parse_String_NonSSO_Plain |
5017.942829999811 ns/iter |
5276.591268172685 ns/iter |
0.95 |
JSON_Parse_String_SSO_Plain |
2761.9111011953964 ns/iter |
2809.935613739166 ns/iter |
0.98 |
JSON_Parse_String_Escape_Heavy |
14443.861938758695 ns/iter |
14415.850539136187 ns/iter |
1.00 |
JSON_Parse_Object_Short_Keys |
7843.524817297304 ns/iter |
7818.172733570453 ns/iter |
1.00 |
JSON_Parse_Object_Scalar_Properties |
3941.594156923767 ns/iter |
3973.5249747170556 ns/iter |
0.99 |
JSON_Parse_Object_Array_Properties |
5413.742264372678 ns/iter |
5453.548474905989 ns/iter |
0.99 |
JSON_Parse_Object_Object_Properties |
5454.845848234605 ns/iter |
5434.610361909541 ns/iter |
1.00 |
JSON_Parse_Nested_Containers |
43937.34086177349 ns/iter |
44576.895769627336 ns/iter |
0.99 |
JSON_From_String_Copy |
20.746751634021543 ns/iter |
19.6365289878257 ns/iter |
1.06 |
JSON_From_String_Temporary |
19.0430214341837 ns/iter |
17.468360984696844 ns/iter |
1.09 |
JSON_Number_To_Double |
22.571431661486347 ns/iter |
23.11056660140514 ns/iter |
0.98 |
JSON_Object_At_Last_Key/8 |
6.329733579404088 ns/iter |
5.923540742848463 ns/iter |
1.07 |
JSON_Object_At_Last_Key/32 |
23.544199379332944 ns/iter |
21.521762127783443 ns/iter |
1.09 |
JSON_Object_At_Last_Key/128 |
91.05927089276365 ns/iter |
87.52907554836565 ns/iter |
1.04 |
JSON_Object_At_Last_Key/512 |
380.4840309182031 ns/iter |
403.1929543560848 ns/iter |
0.94 |
JSON_Fast_Hash_Helm_Chart_Lock |
63.05288324488905 ns/iter |
60.473908918567524 ns/iter |
1.04 |
JSON_Equality_Helm_Chart_Lock |
158.02194487443228 ns/iter |
163.10240234527362 ns/iter |
0.97 |
JSON_Divisible_By_Decimal |
251.1867758935706 ns/iter |
265.66159823939654 ns/iter |
0.95 |
JSON_String_Equal/10 |
5.6298416280528585 ns/iter |
6.8556513135212604 ns/iter |
0.82 |
JSON_String_Equal/100 |
6.331693408644956 ns/iter |
6.548778841114521 ns/iter |
0.97 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
1.0539825441165152 ns/iter |
0.936269132887025 ns/iter |
1.13 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
12.334532750415537 ns/iter |
10.281715134596455 ns/iter |
1.20 |
JSON_String_Fast_Hash/10 |
2.113708746162673 ns/iter |
2.491400758809272 ns/iter |
0.85 |
JSON_String_Fast_Hash/100 |
2.1095730503834997 ns/iter |
2.4914773930237906 ns/iter |
0.85 |
JSON_String_Key_Hash/10 |
2.8126355648682306 ns/iter |
2.494543269882218 ns/iter |
1.13 |
JSON_String_Key_Hash/100 |
7.731783635686182 ns/iter |
6.538987749247718 ns/iter |
1.18 |
JSON_Object_Defines_Miss_Same_Length |
2.9681236899555477 ns/iter |
2.713399763371421 ns/iter |
1.09 |
JSON_Object_Defines_Miss_Too_Small |
2.953394599290932 ns/iter |
2.892815579541539 ns/iter |
1.02 |
JSON_Object_Defines_Miss_Too_Large |
3.2061605880343085 ns/iter |
3.178793051179369 ns/iter |
1.01 |
Pointer_Object_Traverse |
30.721387153647935 ns/iter |
28.90477656462574 ns/iter |
1.06 |
Pointer_Object_Try_Traverse |
32.9529097890029 ns/iter |
31.099786946993948 ns/iter |
1.06 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
167.2945235766941 ns/iter |
174.53067514146244 ns/iter |
0.96 |
Pointer_Walker_Schema_ISO_Language |
2796094.0163935544 ns/iter |
2703432.7120622685 ns/iter |
1.03 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
1245089.4283186253 ns/iter |
1245957.2931653946 ns/iter |
1.00 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
1619106.305555449 ns/iter |
1611330.2529000703 ns/iter |
1.00 |
Pointer_Position_Tracker_Get_Deeply_Nested |
742.7187587394177 ns/iter |
701.0254531807972 ns/iter |
1.06 |
JSONPath_Descendant_Filter_Nested |
1588.6903276149048 ns/iter |
1596.485879026559 ns/iter |
1.00 |
URITemplateRouter_Create |
30093.4151072965 ns/iter |
32569.87166372217 ns/iter |
0.92 |
URITemplateRouter_Match |
174.02567447739756 ns/iter |
180.9693468491581 ns/iter |
0.96 |
URITemplateRouter_Match_BasePath |
204.78128184740842 ns/iter |
204.17081899503933 ns/iter |
1.00 |
URITemplateRouterView_Restore |
9905.857729442607 ns/iter |
8653.31662199687 ns/iter |
1.14 |
URITemplateRouterView_Match |
144.92682733185933 ns/iter |
145.1371890486878 ns/iter |
1.00 |
URITemplateRouterView_Match_BasePath |
165.03404759915284 ns/iter |
166.1850565281552 ns/iter |
0.99 |
URITemplateRouterView_Arguments |
449.8546953030277 ns/iter |
432.8472352187237 ns/iter |
1.04 |
JSONL_Parse_Large |
9175187.03947376 ns/iter |
9665902.164383562 ns/iter |
0.95 |
JSONL_Parse_Large_GZIP |
10806206.615384676 ns/iter |
11195308.063491443 ns/iter |
0.97 |
JSONLD_Catalog_Annotation_List_Populate |
1274480.6539161159 ns/iter |
1248214.6376554638 ns/iter |
1.02 |
JSONLD_Catalog_Materialize |
4413600.064102259 ns/iter |
4245722.951218923 ns/iter |
1.04 |
HTML_Build_Table_100000 |
69895131.90000024 ns/iter |
67652600.50000279 ns/iter |
1.03 |
HTML_Render_Table_100000 |
5562912.200000027 ns/iter |
5309952.763358357 ns/iter |
1.05 |
GZIP_Compress_ISO_Language_Set_3_Locations |
35525819.34999921 ns/iter |
33399966.047617067 ns/iter |
1.06 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
4345806.732919543 ns/iter |
4271672.884146522 ns/iter |
1.02 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2118453.1963745635 ns/iter |
1886788.2156333101 ns/iter |
1.12 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
275780.49292451964 ns/iter |
361254.3290288992 ns/iter |
0.76 |
JOSE_VerifySignature_RS256 |
63946.15514565111 ns/iter |
60288.6526750445 ns/iter |
1.06 |
JOSE_VerifySignature_ES512 |
2675937.574712532 ns/iter |
2486344.471631112 ns/iter |
1.08 |
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: 8b491f9 | Previous: b6461e6 | Ratio |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
5.473983035714574 ns/iter |
4.287702954085208 ns/iter |
1.28 |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
5.032144000000471 ns/iter |
3.8432282366075907 ns/iter |
1.31 |
Regex_Period_Asterisk |
5.048327999999174 ns/iter |
3.843621957422098 ns/iter |
1.31 |
Regex_Group_Period_Asterisk_Group |
5.022809821428252 ns/iter |
3.83995552885746 ns/iter |
1.31 |
Regex_Period_Plus |
5.027279999999337 ns/iter |
3.5661910658561715 ns/iter |
1.41 |
Regex_Period |
5.3724959999999555 ns/iter |
3.6938667791179123 ns/iter |
1.45 |
Regex_Caret_Period_Plus_Dollar |
5.0799240000003465 ns/iter |
3.5708278507665154 ns/iter |
1.42 |
Regex_Caret_Group_Period_Plus_Group_Dollar |
5.396500892857148 ns/iter |
3.6647573603448023 ns/iter |
1.47 |
Regex_Caret_Period_Asterisk_Dollar |
5.331434000000854 ns/iter |
3.9042247080785324 ns/iter |
1.37 |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
5.017071999999416 ns/iter |
3.8392864217154767 ns/iter |
1.31 |
Regex_Caret_X_Hyphen |
8.467982142857773 ns/iter |
6.29306160714346 ns/iter |
1.35 |
Regex_Period_Md_Dollar |
44.94290000000234 ns/iter |
52.270850000002156 ns/iter |
0.86 |
Regex_Caret_Slash_Period_Asterisk |
7.85894977678606 ns/iter |
5.826113392857784 ns/iter |
1.35 |
Regex_Caret_Period_Range_Dollar |
5.979561607143223 ns/iter |
4.1480440848211995 ns/iter |
1.44 |
Regex_Nested_Backtrack |
56.04606249999985 ns/iter |
57.74183928571525 ns/iter |
0.97 |
JSON_Array_Of_Objects_Unique |
586.8616964286437 ns/iter |
520.0452000000269 ns/iter |
1.13 |
JSON_Parse_1 |
8854.844844443807 ns/iter |
7174.5482142862975 ns/iter |
1.23 |
JSON_Parse_Real |
16144.446428571413 ns/iter |
13951.850214954513 ns/iter |
1.16 |
JSON_Parse_Decimal |
12092.984374998394 ns/iter |
8939.038665005417 ns/iter |
1.35 |
JSON_Parse_Schema_ISO_Language |
7506233.333333512 ns/iter |
6748617.857143455 ns/iter |
1.11 |
JSON_Parse_Integer |
6049.194642856597 ns/iter |
4535.1974003605665 ns/iter |
1.33 |
JSON_Parse_String_NonSSO_Plain |
7803.001116070923 ns/iter |
6111.811000000671 ns/iter |
1.28 |
JSON_Parse_String_SSO_Plain |
3739.8140494806657 ns/iter |
2864.096846385154 ns/iter |
1.31 |
JSON_Parse_String_Escape_Heavy |
21531.024999998037 ns/iter |
18915.78764096043 ns/iter |
1.14 |
JSON_Parse_Object_Short_Keys |
16538.591345574547 ns/iter |
10223.078124999674 ns/iter |
1.62 |
JSON_Parse_Object_Scalar_Properties |
8877.800892857327 ns/iter |
5373.286000000235 ns/iter |
1.65 |
JSON_Parse_Object_Array_Properties |
13385.616135642264 ns/iter |
8883.310267856968 ns/iter |
1.51 |
JSON_Parse_Object_Object_Properties |
13154.176785714559 ns/iter |
9584.856764032067 ns/iter |
1.37 |
JSON_Parse_Nested_Containers |
79345.97098213964 ns/iter |
64995.90178571729 ns/iter |
1.22 |
JSON_From_String_Copy |
64.13695535713819 ns/iter |
51.118270000006305 ns/iter |
1.25 |
JSON_From_String_Temporary |
57.84452678571686 ns/iter |
63.47545535714768 ns/iter |
0.91 |
JSON_Number_To_Double |
122.3095123969039 ns/iter |
106.70284345077752 ns/iter |
1.15 |
JSON_Object_At_Last_Key/8 |
7.240084821427827 ns/iter |
6.728748214285929 ns/iter |
1.08 |
JSON_Object_At_Last_Key/32 |
24.122340132561114 ns/iter |
19.38532749176905 ns/iter |
1.24 |
JSON_Object_At_Last_Key/128 |
89.52359868199012 ns/iter |
74.9427823686198 ns/iter |
1.19 |
JSON_Object_At_Last_Key/512 |
424.7538810999518 ns/iter |
329.4331249999719 ns/iter |
1.29 |
JSON_Fast_Hash_Helm_Chart_Lock |
103.25846875000266 ns/iter |
88.1281361607224 ns/iter |
1.17 |
JSON_Equality_Helm_Chart_Lock |
211.49931250000975 ns/iter |
158.786919642852 ns/iter |
1.33 |
JSON_Divisible_By_Decimal |
299.0529688556883 ns/iter |
285.13143816379153 ns/iter |
1.05 |
JSON_String_Equal/10 |
10.372951562500177 ns/iter |
7.814969866072171 ns/iter |
1.33 |
JSON_String_Equal/100 |
11.85150892857223 ns/iter |
8.78544772863745 ns/iter |
1.35 |
JSON_String_Equal_Small_By_Perfect_Hash/10 |
2.5164650000005753 ns/iter |
1.6463120546737526 ns/iter |
1.53 |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 |
15.043352678567599 ns/iter |
11.447401562499238 ns/iter |
1.31 |
JSON_String_Fast_Hash/10 |
6.63261785714196 ns/iter |
4.952896999999439 ns/iter |
1.34 |
JSON_String_Fast_Hash/100 |
6.622791964285771 ns/iter |
5.093026675243875 ns/iter |
1.30 |
JSON_String_Key_Hash/10 |
5.3404678571423245 ns/iter |
3.8637003348210692 ns/iter |
1.38 |
JSON_String_Key_Hash/100 |
11.889109375001539 ns/iter |
8.495119419644123 ns/iter |
1.40 |
JSON_Object_Defines_Miss_Same_Length |
3.776021778971589 ns/iter |
3.006725892857633 ns/iter |
1.26 |
JSON_Object_Defines_Miss_Too_Small |
4.083898935863389 ns/iter |
3.3969281249994765 ns/iter |
1.20 |
JSON_Object_Defines_Miss_Too_Large |
3.7757705289712713 ns/iter |
2.9918668040279064 ns/iter |
1.26 |
Pointer_Object_Traverse |
70.30505357142098 ns/iter |
50.63855999999305 ns/iter |
1.39 |
Pointer_Object_Try_Traverse |
71.28690848214247 ns/iter |
52.70637000000988 ns/iter |
1.35 |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
170.32674107144072 ns/iter |
125.02366071430515 ns/iter |
1.36 |
Pointer_Walker_Schema_ISO_Language |
13636343.999996824 ns/iter |
9677420.312499408 ns/iter |
1.41 |
Pointer_Maybe_Tracked_Deeply_Nested/0 |
2724125.446429225 ns/iter |
1937846.9565214363 ns/iter |
1.41 |
Pointer_Maybe_Tracked_Deeply_Nested/1 |
3889311.2299456093 ns/iter |
2973212.2881355127 ns/iter |
1.31 |
Pointer_Position_Tracker_Get_Deeply_Nested |
573.0176339286329 ns/iter |
471.5800892857455 ns/iter |
1.22 |
JSONPath_Descendant_Filter_Nested |
2406.937187500091 ns/iter |
1985.923826718021 ns/iter |
1.21 |
URITemplateRouter_Create |
42316.65505973318 ns/iter |
30467.886678823517 ns/iter |
1.39 |
URITemplateRouter_Match |
235.20646928495606 ns/iter |
172.79283685650847 ns/iter |
1.36 |
URITemplateRouter_Match_BasePath |
266.5819999999387 ns/iter |
203.67235474672398 ns/iter |
1.31 |
URITemplateRouterView_Restore |
32986.36607143278 ns/iter |
18499.153563873584 ns/iter |
1.78 |
URITemplateRouterView_Match |
180.62570362728428 ns/iter |
134.93440245828504 ns/iter |
1.34 |
URITemplateRouterView_Match_BasePath |
205.74565152921974 ns/iter |
151.22406249997562 ns/iter |
1.36 |
URITemplateRouterView_Arguments |
534.7080999999889 ns/iter |
457.45125023630703 ns/iter |
1.17 |
JSONL_Parse_Large |
33155976.1904741 ns/iter |
25042257.14285927 ns/iter |
1.32 |
JSONL_Parse_Large_GZIP |
33578535.00000374 ns/iter |
25814803.846156582 ns/iter |
1.30 |
JSONLD_Catalog_Annotation_List_Populate |
2644614.056224961 ns/iter |
2094522.812500088 ns/iter |
1.26 |
JSONLD_Catalog_Materialize |
7810173.333334408 ns/iter |
6425460.714286909 ns/iter |
1.22 |
HTML_Build_Table_100000 |
88417844.44444379 ns/iter |
71496018.18181592 ns/iter |
1.24 |
HTML_Render_Table_100000 |
7960608.888887085 ns/iter |
6773983.333333592 ns/iter |
1.18 |
GZIP_Compress_ISO_Language_Set_3_Locations |
36388131.57894411 ns/iter |
29460607.692306858 ns/iter |
1.24 |
GZIP_Decompress_ISO_Language_Set_3_Locations |
10135071.999999734 ns/iter |
7908103.33333209 ns/iter |
1.28 |
GZIP_Compress_ISO_Language_Set_3_Schema |
2135651.3043475137 ns/iter |
1938097.7886980125 ns/iter |
1.10 |
GZIP_Decompress_ISO_Language_Set_3_Schema |
616683.4821428325 ns/iter |
471107.05244117265 ns/iter |
1.31 |
JOSE_VerifySignature_RS256 |
21440.581249997595 ns/iter |
18431.64731014135 ns/iter |
1.16 |
JOSE_VerifySignature_ES512 |
1548121.6517854484 ns/iter |
1190660.89285736 ns/iter |
1.30 |
This comment was automatically generated by workflow using github-action-benchmark.
Signed-off-by: Juan Cruz Viotti jv@jviotti.com