Register the OpenAPI v3.0 Schema Object keywords with the walker - #2932
Conversation
Signed-off-by: Juan Cruz Viotti <[email protected]>
Benchmark
|
| Benchmark | main |
This branch | Change |
|---|---|---|---|
JSON_Parse_String_Escape_Heavy |
11.06 us | 12.46 us | +12.7% |
JSON_Object_At_Last_Key_128 |
66.72 ns | 71.55 ns | +7.2% |
JSON_Object_At_Last_Key_32 |
11.28 ns | 11.96 ns | +6.0% |
JSON_Object_Defines_Miss_Too_Small |
3.64 ns | 3.40 ns | -6.6% |
Pointer_Position_Tracker_Get_Deeply_Nested |
565.02 ns | 500.17 ns | -11.5% |
All 110 benchmarks
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.23 ns | 2.22 ns | -0.5% |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.16 ns | 2.14 ns | -0.6% |
Regex_Period_Asterisk |
1.93 ns | 1.89 ns | -1.9% |
Regex_Group_Period_Asterisk_Group |
1.85 ns | 1.86 ns | +0.6% |
Regex_Period_Plus |
2.53 ns | 2.52 ns | -0.2% |
Regex_Period |
2.48 ns | 2.51 ns | +1.3% |
Regex_Caret_Period_Plus_Dollar |
2.34 ns | 2.34 ns | -0.1% |
Regex_Caret_Group_Period_Plus_Group_Dollar |
2.18 ns | 2.21 ns | +0.9% |
Regex_Caret_Period_Asterisk_Dollar |
2.24 ns | 2.23 ns | -0.5% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.12 ns | 2.15 ns | +1.2% |
Regex_Caret_X_Hyphen |
4.30 ns | 4.17 ns | -2.9% |
Regex_Period_Md_Dollar |
18.95 ns | 18.93 ns | -0.1% |
Regex_Caret_Slash_Period_Asterisk |
4.47 ns | 4.50 ns | +0.6% |
Regex_Caret_Period_Range_Dollar |
2.93 ns | 2.93 ns | -0.0% |
Regex_Nested_Backtrack |
29.80 ns | 29.46 ns | -1.1% |
JSON_Array_Of_Objects_Unique |
396.14 ns | 395.93 ns | -0.1% |
JSON_Array_Of_Integers_Unique_256 |
3.87 us | 3.79 us | -2.1% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
167.57 us | 168.41 us | +0.5% |
JSON_Parse_1 |
3.58 us | 3.57 us | -0.3% |
JSON_Parse_Real |
3.68 us | 3.69 us | +0.3% |
JSON_Parse_Decimal |
6.26 us | 6.38 us | +2.0% |
JSON_Parse_Schema_ISO_Language |
2.65 ms | 2.62 ms | -1.1% |
JSON_Parse_Integer |
2.70 us | 2.69 us | -0.1% |
JSON_Parse_String_NonSSO_Plain |
2.24 us | 2.24 us | -0.0% |
JSON_Parse_String_SSO_Plain |
2.05 us | 2.09 us | +1.7% |
JSON_Parse_String_Escape_Heavy |
11.06 us | 12.46 us | +12.7% |
JSON_Parse_Object_Short_Keys |
6.16 us | 6.19 us | +0.5% |
JSON_Parse_Object_Scalar_Properties |
3.15 us | 3.14 us | -0.5% |
JSON_Parse_Object_Array_Properties |
4.27 us | 4.33 us | +1.4% |
JSON_Parse_Object_Object_Properties |
4.23 us | 4.15 us | -1.9% |
JSON_Parse_Nested_Containers |
27.49 us | 27.38 us | -0.4% |
JSON_Fast_Hash_Helm_Chart_Lock |
58.88 ns | 58.49 ns | -0.7% |
JSON_Equality_Helm_Chart_Lock |
120.81 ns | 120.50 ns | -0.3% |
JSON_String_Equal_10 |
4.51 ns | 4.53 ns | +0.5% |
JSON_String_Equal_100 |
5.63 ns | 5.60 ns | -0.4% |
JSON_String_Equal_Small_By_Perfect_Hash_10 |
0.58 ns | 0.58 ns | +0.1% |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 |
8.72 ns | 8.75 ns | +0.4% |
JSON_String_Fast_Hash_10 |
2.24 ns | 2.25 ns | +0.6% |
JSON_String_Fast_Hash_100 |
2.25 ns | 2.24 ns | -0.3% |
JSON_String_Key_Hash_10 |
1.68 ns | 1.68 ns | +0.2% |
JSON_String_Key_Hash_100 |
6.44 ns | 6.50 ns | +0.9% |
JSON_Object_Defines_Miss_Same_Length |
4.07 ns | 4.08 ns | +0.2% |
JSON_Object_Defines_Miss_Too_Small |
3.64 ns | 3.40 ns | -6.6% |
JSON_Object_Defines_Miss_Too_Large |
3.32 ns | 3.30 ns | -0.5% |
JSON_From_String_Copy |
7.71 ns | 7.66 ns | -0.7% |
JSON_From_String_Temporary |
6.27 ns | 6.28 ns | +0.1% |
JSON_Number_To_Double |
12.05 ns | 11.97 ns | -0.7% |
JSON_Object_At_Last_Key_8 |
3.96 ns | 3.85 ns | -3.0% |
JSON_Object_At_Last_Key_32 |
11.28 ns | 11.96 ns | +6.0% |
JSON_Object_At_Last_Key_128 |
66.72 ns | 71.55 ns | +7.2% |
JSON_Object_At_Last_Key_512 |
181.74 ns | 181.73 ns | -0.0% |
JSON_Divisible_By_Decimal |
402.59 ns | 398.81 ns | -0.9% |
JSON_PropertySet_Contains |
46.13 ns | 47.17 ns | +2.3% |
JSON_PropertySet_Filter_Object_Properties |
34.51 ns | 34.64 ns | +0.4% |
JSON_PropertySet_Insert |
458.07 ns | 454.50 ns | -0.8% |
JSON_Stringify_Schema_Web_Of_Things |
48.46 us | 48.58 us | +0.3% |
JSON_Prettify_Schema_Web_Of_Things |
117.74 us | 118.75 us | +0.9% |
Pointer_Object_Traverse |
19.89 ns | 19.84 ns | -0.3% |
Pointer_Object_Try_Traverse |
26.37 ns | 26.67 ns | +1.2% |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
112.11 ns | 108.83 ns | -2.9% |
Pointer_Walker_Schema_ISO_Language |
1.79 ms | 1.82 ms | +1.4% |
Pointer_Untracked_Deeply_Nested |
943.21 us | 948.50 us | +0.6% |
Pointer_Tracked_Deeply_Nested |
1.39 ms | 1.39 ms | +0.0% |
Pointer_Position_Tracker_Get_Deeply_Nested |
565.02 ns | 500.17 ns | -11.5% |
Schema_Tracker_ISO_Language |
3.57 ms | 3.59 ms | +0.6% |
Schema_Tracker_ISO_Language_To_JSON |
12.61 ms | 12.69 ms | +0.6% |
Schema_Frame_WoT_References |
1.61 ms | 1.64 ms | +1.6% |
Schema_Frame_OMC_References |
7.42 ms | 7.47 ms | +0.7% |
Schema_Frame_OMC_Pointers |
13.36 ms | 13.30 ms | -0.4% |
Schema_Frame_OMC_Locations |
6.44 ms | 6.49 ms | +0.8% |
Schema_Frame_ISO_Language_Locations |
31.10 ms | 31.37 ms | +0.9% |
Schema_Frame_ISO_Language_Root |
222.47 ns | 225.46 ns | +1.3% |
Schema_Frame_KrakenD_References |
11.92 ms | 12.18 ms | +2.1% |
Schema_Frame_KrakenD_Reachable |
105.84 ms | 105.30 ms | -0.5% |
Schema_Frame_ISO_Language_Locations_To_JSON |
22.96 ms | 22.29 ms | -2.9% |
Schema_Frame_Many_Resources_References |
112.85 ms | 114.46 ms | +1.4% |
Schema_Frame_Deeply_Nested_References |
8.39 ms | 8.60 ms | +2.4% |
Schema_Format_ISO_Language |
34.42 ms | 34.52 ms | +0.3% |
Schema_Bundle_Meta_2020_12 |
409.81 us | 412.18 us | +0.6% |
Schema_Bundle_Many_Remotes_With_Fragments |
4.81 ms | 4.81 ms | -0.0% |
OpenAPI_Format_Synthetic_3_1 |
36.79 ms | 36.07 ms | -2.0% |
JSONPath_Descendant_Filter_Nested |
1.16 us | 1.16 us | -0.4% |
URITemplateRouter_Create |
15.43 us | 15.41 us | -0.1% |
URITemplateRouter_Match |
147.81 ns | 149.12 ns | +0.9% |
URITemplateRouterView_Restore |
2.89 us | 2.91 us | +0.8% |
URITemplateRouterView_Match |
96.08 ns | 96.40 ns | +0.3% |
URITemplateRouterView_Arguments |
376.39 ns | 379.96 ns | +0.9% |
URITemplateRouter_Match_BasePath |
169.13 ns | 167.56 ns | -0.9% |
URITemplateRouterView_Match_BasePath |
109.40 ns | 110.67 ns | +1.2% |
JSONL_Parse_Large |
7.14 ms | 7.15 ms | +0.1% |
JSONL_Parse_Large_GZIP |
7.39 ms | 7.33 ms | -0.8% |
JSONLD_Catalog_Annotation_List_Populate |
600.73 us | 605.79 us | +0.8% |
JSONLD_Catalog_Materialize |
2.89 ms | 2.91 ms | +0.5% |
HTML_Build_Table_100000 |
28.76 ms | 29.05 ms | +1.0% |
HTML_Render_Table_100000 |
2.72 ms | 2.73 ms | +0.3% |
Markdown_To_HTML_Realistic_Document |
3.38 ms | 3.32 ms | -1.6% |
Markdown_To_HTML_Pathological |
10.87 ms | 10.88 ms | +0.1% |
Markdown_To_HTML_Short_Descriptions |
392.13 ns | 396.71 ns | +1.2% |
GZIP_Compress_ISO_Language_Set_3_Locations |
27.58 ms | 27.00 ms | -2.1% |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3.53 ms | 3.56 ms | +1.0% |
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations |
5.00 ms | 4.91 ms | -1.8% |
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations |
6.92 ms | 6.86 ms | -0.9% |
GZIP_Compress_ISO_Language_Set_3_Schema |
2.05 ms | 1.96 ms | -4.6% |
GZIP_Decompress_ISO_Language_Set_3_Schema |
362.77 us | 365.32 us | +0.7% |
JOSE_VerifySignature_RS256 |
39.59 us | 39.79 us | +0.5% |
JOSE_VerifySignature_ES512 |
1.41 ms | 1.38 ms | -2.7% |
Crypto_CRC32_Large_JSONL |
45.38 us | 45.49 us | +0.2% |
Crypto_AES_GCM_Encrypt_128_1KB |
25.45 us | 25.69 us | +0.9% |
Crypto_AES_GCM_Decrypt_128_1KB |
25.51 us | 25.27 us | -1.0% |
Crypto_AES_GCM_Encrypt_256_1KB |
31.09 us | 31.40 us | +1.0% |
🤖 Augment PR SummarySummary: Registers OpenAPI 3.0 Schema Object keywords with the schema walker. 🤖 Was this summary useful? React with 👍 or 👎 |
| {.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false}, | ||
| {.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false}, | ||
| {.name = "not", .offset = 517, .count = 9, .legacy_ref = false}, | ||
| {.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false}, |
There was a problem hiding this comment.
Could you check the legacy-dialect behavior at src/core/jsonschema/known_walker.cc:5275, where registering nullable changes Draft 3–7 lookups from UNKNOWN_WITH_REF_RESULT to UNKNOWN_RESULT? The keyword remains unknown in those dialects, but its $ref dependency disappears, so dependency-driven consumers lose the existing ordering that places this sibling after the overriding reference.
Other locations where this applies: src/core/jsonschema/known_walker.cc:5321 (x-definitions)
Severity: medium
Other Locations
src/core/jsonschema/known_walker.cc:5321
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Benchmark
|
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Schema_Frame_OMC_References |
22.66 ms | 25.46 ms | +12.4% |
Schema_Frame_ISO_Language_Locations |
90.71 ms | 98.85 ms | +9.0% |
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations |
15.03 ms | 16.17 ms | +7.6% |
JSONLD_Catalog_Materialize |
7.86 ms | 8.39 ms | +6.7% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.71 ns | 5.01 ns | +6.2% |
JSON_From_String_Temporary |
58.02 ns | 61.39 ns | +5.8% |
Schema_Frame_OMC_Locations |
19.17 ms | 20.15 ms | +5.1% |
Pointer_Untracked_Deeply_Nested |
2.65 ms | 2.50 ms | -5.8% |
JSON_Object_At_Last_Key_128 |
97.34 ns | 89.18 ns | -8.4% |
Schema_Frame_KrakenD_References |
47.22 ms | 41.67 ms | -11.7% |
Schema_Frame_ISO_Language_Root |
2.52 us | 2.18 us | -13.5% |
JSON_Object_At_Last_Key_32 |
31.34 ns | 23.39 ns | -25.4% |
Schema_Frame_KrakenD_Reachable |
452.33 ms | 312.69 ms | -30.9% |
All 110 benchmarks
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
4.77 ns | 4.70 ns | -1.5% |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
4.72 ns | 4.76 ns | +0.8% |
Regex_Period_Asterisk |
4.72 ns | 4.86 ns | +2.9% |
Regex_Group_Period_Asterisk_Group |
4.73 ns | 4.77 ns | +0.8% |
Regex_Period_Plus |
4.70 ns | 4.63 ns | -1.4% |
Regex_Period |
4.49 ns | 4.47 ns | -0.3% |
Regex_Caret_Period_Plus_Dollar |
4.63 ns | 4.62 ns | -0.3% |
Regex_Caret_Group_Period_Plus_Group_Dollar |
4.46 ns | 4.46 ns | +0.1% |
Regex_Caret_Period_Asterisk_Dollar |
4.70 ns | 4.70 ns | -0.1% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
4.71 ns | 5.01 ns | +6.2% |
Regex_Caret_X_Hyphen |
7.92 ns | 7.87 ns | -0.7% |
Regex_Period_Md_Dollar |
46.99 ns | 47.12 ns | +0.3% |
Regex_Caret_Slash_Period_Asterisk |
7.58 ns | 7.72 ns | +1.9% |
Regex_Caret_Period_Range_Dollar |
5.34 ns | 5.34 ns | -0.0% |
Regex_Nested_Backtrack |
58.40 ns | 58.31 ns | -0.2% |
JSON_Array_Of_Objects_Unique |
538.20 ns | 542.91 ns | +0.9% |
JSON_Array_Of_Integers_Unique_256 |
4.45 us | 4.46 us | +0.2% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
299.92 us | 299.88 us | -0.0% |
JSON_Parse_1 |
8.48 us | 8.90 us | +4.9% |
JSON_Parse_Real |
8.97 us | 8.93 us | -0.4% |
JSON_Parse_Decimal |
11.98 us | 11.88 us | -0.8% |
JSON_Parse_Schema_ISO_Language |
7.66 ms | 7.64 ms | -0.2% |
JSON_Parse_Integer |
6.49 us | 6.46 us | -0.5% |
JSON_Parse_String_NonSSO_Plain |
7.83 us | 7.95 us | +1.5% |
JSON_Parse_String_SSO_Plain |
3.64 us | 3.71 us | +2.2% |
JSON_Parse_String_Escape_Heavy |
21.84 us | 21.84 us | +0.0% |
JSON_Parse_Object_Short_Keys |
13.62 us | 13.34 us | -2.1% |
JSON_Parse_Object_Scalar_Properties |
6.95 us | 6.85 us | -1.4% |
JSON_Parse_Object_Array_Properties |
11.32 us | 11.50 us | +1.5% |
JSON_Parse_Object_Object_Properties |
11.57 us | 11.71 us | +1.3% |
JSON_Parse_Nested_Containers |
81.16 us | 81.29 us | +0.2% |
JSON_Fast_Hash_Helm_Chart_Lock |
104.15 ns | 102.58 ns | -1.5% |
JSON_Equality_Helm_Chart_Lock |
216.59 ns | 218.37 ns | +0.8% |
JSON_String_Equal_10 |
10.35 ns | 10.40 ns | +0.4% |
JSON_String_Equal_100 |
11.64 ns | 11.68 ns | +0.3% |
JSON_String_Equal_Small_By_Perfect_Hash_10 |
2.20 ns | 2.19 ns | -0.4% |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 |
14.16 ns | 14.21 ns | +0.4% |
JSON_String_Fast_Hash_10 |
6.34 ns | 6.31 ns | -0.5% |
JSON_String_Fast_Hash_100 |
6.33 ns | 6.30 ns | -0.4% |
JSON_String_Key_Hash_10 |
5.03 ns | 5.06 ns | +0.6% |
JSON_String_Key_Hash_100 |
11.90 ns | 11.89 ns | -0.0% |
JSON_Object_Defines_Miss_Same_Length |
3.49 ns | 3.48 ns | -0.5% |
JSON_Object_Defines_Miss_Too_Small |
4.10 ns | 4.08 ns | -0.7% |
JSON_Object_Defines_Miss_Too_Large |
4.23 ns | 4.09 ns | -3.3% |
JSON_From_String_Copy |
63.76 ns | 63.82 ns | +0.1% |
JSON_From_String_Temporary |
58.02 ns | 61.39 ns | +5.8% |
JSON_Number_To_Double |
40.96 ns | 40.86 ns | -0.3% |
JSON_Object_At_Last_Key_8 |
7.60 ns | 7.23 ns | -4.9% |
JSON_Object_At_Last_Key_32 |
31.34 ns | 23.39 ns | -25.4% |
JSON_Object_At_Last_Key_128 |
97.34 ns | 89.18 ns | -8.4% |
JSON_Object_At_Last_Key_512 |
436.08 ns | 417.93 ns | -4.2% |
JSON_Divisible_By_Decimal |
611.71 ns | 585.92 ns | -4.2% |
JSON_PropertySet_Contains |
79.31 ns | 79.53 ns | +0.3% |
JSON_PropertySet_Filter_Object_Properties |
50.88 ns | 50.14 ns | -1.5% |
JSON_PropertySet_Insert |
1.32 us | 1.30 us | -1.0% |
JSON_Stringify_Schema_Web_Of_Things |
230.70 us | 229.31 us | -0.6% |
JSON_Prettify_Schema_Web_Of_Things |
723.21 us | 724.68 us | +0.2% |
Pointer_Object_Traverse |
66.99 ns | 66.62 ns | -0.6% |
Pointer_Object_Try_Traverse |
74.38 ns | 73.92 ns | -0.6% |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
182.17 ns | 186.87 ns | +2.6% |
Pointer_Walker_Schema_ISO_Language |
13.30 ms | 12.99 ms | -2.3% |
Pointer_Untracked_Deeply_Nested |
2.65 ms | 2.50 ms | -5.8% |
Pointer_Tracked_Deeply_Nested |
3.76 ms | 3.81 ms | +1.3% |
Pointer_Position_Tracker_Get_Deeply_Nested |
592.83 ns | 569.79 ns | -3.9% |
Schema_Tracker_ISO_Language |
11.08 ms | 11.20 ms | +1.1% |
Schema_Tracker_ISO_Language_To_JSON |
65.95 ms | 64.93 ms | -1.6% |
Schema_Frame_WoT_References |
5.26 ms | 5.27 ms | +0.2% |
Schema_Frame_OMC_References |
22.66 ms | 25.46 ms | +12.4% |
Schema_Frame_OMC_Pointers |
43.13 ms | 44.73 ms | +3.7% |
Schema_Frame_OMC_Locations |
19.17 ms | 20.15 ms | +5.1% |
Schema_Frame_ISO_Language_Locations |
90.71 ms | 98.85 ms | +9.0% |
Schema_Frame_ISO_Language_Root |
2.52 us | 2.18 us | -13.5% |
Schema_Frame_KrakenD_References |
47.22 ms | 41.67 ms | -11.7% |
Schema_Frame_KrakenD_Reachable |
452.33 ms | 312.69 ms | -30.9% |
Schema_Frame_ISO_Language_Locations_To_JSON |
175.93 ms | 170.56 ms | -3.1% |
Schema_Frame_Many_Resources_References |
739.00 ms | 731.61 ms | -1.0% |
Schema_Frame_Deeply_Nested_References |
25.63 ms | 25.05 ms | -2.3% |
Schema_Format_ISO_Language |
90.73 ms | 91.36 ms | +0.7% |
Schema_Bundle_Meta_2020_12 |
1.45 ms | 1.41 ms | -2.9% |
Schema_Bundle_Many_Remotes_With_Fragments |
29.67 ms | 29.89 ms | +0.7% |
OpenAPI_Format_Synthetic_3_1 |
117.45 ms | 120.70 ms | +2.8% |
JSONPath_Descendant_Filter_Nested |
2.48 us | 2.42 us | -2.3% |
URITemplateRouter_Create |
39.42 us | 39.14 us | -0.7% |
URITemplateRouter_Match |
232.93 ns | 231.98 ns | -0.4% |
URITemplateRouterView_Restore |
33.41 us | 33.56 us | +0.4% |
URITemplateRouterView_Match |
214.26 ns | 213.46 ns | -0.4% |
URITemplateRouterView_Arguments |
547.88 ns | 547.40 ns | -0.1% |
URITemplateRouter_Match_BasePath |
265.70 ns | 266.71 ns | +0.4% |
URITemplateRouterView_Match_BasePath |
243.64 ns | 242.79 ns | -0.4% |
JSONL_Parse_Large |
31.95 ms | 31.83 ms | -0.4% |
JSONL_Parse_Large_GZIP |
31.37 ms | 30.74 ms | -2.0% |
JSONLD_Catalog_Annotation_List_Populate |
3.02 ms | 3.03 ms | +0.4% |
JSONLD_Catalog_Materialize |
7.86 ms | 8.39 ms | +6.7% |
HTML_Build_Table_100000 |
67.89 ms | 67.78 ms | -0.2% |
HTML_Render_Table_100000 |
7.99 ms | 8.01 ms | +0.3% |
Markdown_To_HTML_Realistic_Document |
5.72 ms | 5.61 ms | -1.9% |
Markdown_To_HTML_Pathological |
18.33 ms | 18.30 ms | -0.2% |
Markdown_To_HTML_Short_Descriptions |
706.61 ns | 700.12 ns | -0.9% |
GZIP_Compress_ISO_Language_Set_3_Locations |
37.36 ms | 37.48 ms | +0.3% |
GZIP_Decompress_ISO_Language_Set_3_Locations |
9.70 ms | 9.87 ms | +1.8% |
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations |
12.17 ms | 12.26 ms | +0.7% |
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations |
15.03 ms | 16.17 ms | +7.6% |
GZIP_Compress_ISO_Language_Set_3_Schema |
2.30 ms | 2.31 ms | +0.4% |
GZIP_Decompress_ISO_Language_Set_3_Schema |
628.46 us | 635.80 us | +1.2% |
JOSE_VerifySignature_RS256 |
21.30 us | 21.28 us | -0.1% |
JOSE_VerifySignature_ES512 |
1.37 ms | 1.36 ms | -0.7% |
Crypto_CRC32_Large_JSONL |
102.98 us | 102.93 us | -0.0% |
Crypto_AES_GCM_Encrypt_128_1KB |
2.35 us | 2.37 us | +0.9% |
Crypto_AES_GCM_Decrypt_128_1KB |
2.37 us | 2.37 us | +0.1% |
Crypto_AES_GCM_Encrypt_256_1KB |
2.43 us | 2.43 us | -0.4% |
There was a problem hiding this comment.
3 issues found across 2 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/core/jsonschema/known_walker.cc">
<violation number="1" location="src/core/jsonschema/known_walker.cc:4228">
P2: The OpenAPI `properties` entry incorrectly declares `required` as an ordering dependency. This makes consumers reorder `properties` behind `required` for no semantic reason; use an empty ordering span like the other dialect entries.</violation>
<violation number="2" location="src/core/jsonschema/known_walker.cc:5275">
P2: Preserve the legacy `$ref` dependency for `nullable` and `x-definitions` when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.</violation>
<violation number="3" location="src/core/jsonschema/known_walker.cc:5321">
P3: `x-definitions` is not a reserved keyword: OpenAPI 3.0 permits any `x-` prefixed extension property in a Schema Object. Registering it as `SchemaKeywordType::LocationMembers` means any document that happens to contain a user-defined `x-definitions` extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| .result = {SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, | ||
| Known::OPENAPI_3_0_BASE, | ||
| {}, | ||
| KEYWORDS_REQUIRED, |
There was a problem hiding this comment.
P2: The OpenAPI properties entry incorrectly declares required as an ordering dependency. This makes consumers reorder properties behind required for no semantic reason; use an empty ordering span like the other dialect entries.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 4228:
<comment>The OpenAPI `properties` entry incorrectly declares `required` as an ordering dependency. This makes consumers reorder `properties` behind `required` for no semantic reason; use an empty ordering span like the other dialect entries.</comment>
<file context>
@@ -4017,6 +4220,13 @@ constexpr std::array<Variant, 691> VARIANTS{{
+ .result = {SchemaKeywordType::ApplicatorMembersTraversePropertyStatic,
+ Known::OPENAPI_3_0_BASE,
+ {},
+ KEYWORDS_REQUIRED,
+ INSTANCES_OBJECT}},
{.vocabulary = Known::JSON_SCHEMA_2020_12_APPLICATOR,
</file context>
| KEYWORDS_REQUIRED, | |
| {}, |
| {.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false}, | ||
| {.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false}, | ||
| {.name = "not", .offset = 517, .count = 9, .legacy_ref = false}, | ||
| {.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false}, |
There was a problem hiding this comment.
P2: Preserve the legacy $ref dependency for nullable and x-definitions when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5275:
<comment>Preserve the legacy `$ref` dependency for `nullable` and `x-definitions` when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.</comment>
<file context>
@@ -4919,133 +5191,135 @@ constexpr std::array<Keyword, 102> KEYWORDS{{
+ {.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false},
+ {.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false},
+ {.name = "not", .offset = 517, .count = 9, .legacy_ref = false},
+ {.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false},
+ {.name = "oneOf", .offset = 527, .count = 9, .legacy_ref = false},
+ {.name = "optional", .offset = 536, .count = 6, .legacy_ref = false},
</file context>
| {.name = "xml", .offset = 689, .count = 2, .legacy_ref = false}, | ||
| {.name = "uniqueItems", .offset = 706, .count = 13, .legacy_ref = false}, | ||
| {.name = "writeOnly", .offset = 719, .count = 5, .legacy_ref = true}, | ||
| {.name = "x-definitions", .offset = 724, .count = 1, .legacy_ref = false}, |
There was a problem hiding this comment.
P3: x-definitions is not a reserved keyword: OpenAPI 3.0 permits any x- prefixed extension property in a Schema Object. Registering it as SchemaKeywordType::LocationMembers means any document that happens to contain a user-defined x-definitions extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5321:
<comment>`x-definitions` is not a reserved keyword: OpenAPI 3.0 permits any `x-` prefixed extension property in a Schema Object. Registering it as `SchemaKeywordType::LocationMembers` means any document that happens to contain a user-defined `x-definitions` extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.</comment>
<file context>
@@ -4919,133 +5191,135 @@ constexpr std::array<Keyword, 102> KEYWORDS{{
- {.name = "xml", .offset = 689, .count = 2, .legacy_ref = false},
+ {.name = "uniqueItems", .offset = 706, .count = 13, .legacy_ref = false},
+ {.name = "writeOnly", .offset = 719, .count = 5, .legacy_ref = true},
+ {.name = "x-definitions", .offset = 724, .count = 1, .legacy_ref = false},
+ {.name = "xml", .offset = 725, .count = 3, .legacy_ref = false},
}};
</file context>
Benchmark
|
| Benchmark | main |
This branch | Change |
|---|---|---|---|
JSON_Object_Defines_Miss_Too_Small |
1.36 ns | 1.86 ns | +37.1% |
JSON_Object_At_Last_Key_128 |
29.99 ns | 39.38 ns | +31.3% |
JSON_PropertySet_Filter_Object_Properties |
17.42 ns | 20.89 ns | +20.0% |
JSON_String_Key_Hash_10 |
1.46 ns | 1.65 ns | +12.4% |
JSON_Prettify_Schema_Web_Of_Things |
86.52 us | 92.50 us | +6.9% |
JSON_Array_Of_Objects_Unique |
234.25 ns | 249.32 ns | +6.4% |
Pointer_Untracked_Deeply_Nested |
811.92 us | 855.69 us | +5.4% |
JSON_PropertySet_Insert |
237.22 ns | 249.61 ns | +5.2% |
Markdown_To_HTML_Pathological |
7.73 ms | 8.14 ms | +5.2% |
Regex_Period |
1.25 ns | 1.19 ns | -5.0% |
JSON_Parse_Real |
3.11 us | 2.96 us | -5.1% |
JSONPath_Descendant_Filter_Nested |
971.11 ns | 921.43 ns | -5.1% |
Regex_Period_Plus |
1.24 ns | 1.17 ns | -5.2% |
JSON_Object_At_Last_Key_8 |
2.28 ns | 2.16 ns | -5.3% |
JSON_Object_At_Last_Key_512 |
140.92 ns | 133.37 ns | -5.4% |
Schema_Bundle_Meta_2020_12 |
304.57 us | 288.13 us | -5.4% |
JSON_Parse_1 |
2.88 us | 2.72 us | -5.6% |
JSON_String_Equal_100 |
3.28 ns | 3.10 ns | -5.6% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.25 ns | 1.18 ns | -5.8% |
Regex_Caret_Slash_Period_Asterisk |
3.68 ns | 3.45 ns | -6.2% |
Regex_Caret_Period_Asterisk_Dollar |
1.24 ns | 1.17 ns | -6.2% |
JSON_Fast_Hash_Helm_Chart_Lock |
41.31 ns | 38.45 ns | -6.9% |
URITemplateRouter_Match |
70.85 ns | 64.76 ns | -8.6% |
JSON_PropertySet_Contains |
23.30 ns | 21.26 ns | -8.8% |
JSON_Object_Defines_Miss_Same_Length |
1.61 ns | 1.47 ns | -8.8% |
URITemplateRouter_Match_BasePath |
82.81 ns | 75.25 ns | -9.1% |
Schema_Frame_KrakenD_References |
10.42 ms | 9.13 ms | -12.4% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
114.92 us | 98.88 us | -14.0% |
URITemplateRouterView_Match_BasePath |
89.32 ns | 73.94 ns | -17.2% |
OpenAPI_Format_Synthetic_3_1 |
32.63 ms | 26.95 ms | -17.4% |
Regex_Caret_Period_Range_Dollar |
1.62 ns | 1.17 ns | -27.8% |
All 110 benchmarks
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Crypto_CRC32_Large_JSONL |
75.40 us | 74.36 us | -1.4% |
Crypto_AES_GCM_Encrypt_128_1KB |
637.21 ns | 646.15 ns | +1.4% |
Crypto_AES_GCM_Decrypt_128_1KB |
652.67 ns | 654.96 ns | +0.4% |
Crypto_AES_GCM_Encrypt_256_1KB |
670.05 ns | 650.59 ns | -2.9% |
JOSE_VerifySignature_RS256 |
14.13 us | 14.17 us | +0.2% |
JOSE_VerifySignature_ES512 |
312.81 us | 315.63 us | +0.9% |
GZIP_Compress_ISO_Language_Set_3_Locations |
18.83 ms | 18.56 ms | -1.5% |
GZIP_Decompress_ISO_Language_Set_3_Locations |
3.41 ms | 3.45 ms | +1.2% |
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations |
4.54 ms | 4.48 ms | -1.4% |
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations |
5.16 ms | 4.99 ms | -3.2% |
GZIP_Compress_ISO_Language_Set_3_Schema |
1.44 ms | 1.46 ms | +1.6% |
GZIP_Decompress_ISO_Language_Set_3_Schema |
297.00 us | 296.42 us | -0.2% |
Markdown_To_HTML_Realistic_Document |
2.62 ms | 2.65 ms | +1.4% |
Markdown_To_HTML_Pathological |
7.73 ms | 8.14 ms | +5.2% |
Markdown_To_HTML_Short_Descriptions |
329.52 ns | 338.16 ns | +2.6% |
HTML_Build_Table_100000 |
20.00 ms | 19.64 ms | -1.8% |
HTML_Render_Table_100000 |
1.68 ms | 1.60 ms | -4.4% |
JSONLD_Catalog_Annotation_List_Populate |
405.23 us | 395.70 us | -2.4% |
JSONLD_Catalog_Materialize |
1.90 ms | 1.81 ms | -4.8% |
JSONL_Parse_Large |
6.07 ms | 5.99 ms | -1.4% |
JSONL_Parse_Large_GZIP |
6.11 ms | 6.03 ms | -1.2% |
URITemplateRouter_Create |
10.12 us | 10.10 us | -0.3% |
URITemplateRouter_Match |
70.85 ns | 64.76 ns | -8.6% |
URITemplateRouterView_Restore |
6.99 us | 7.14 us | +2.2% |
URITemplateRouterView_Match |
69.50 ns | 66.56 ns | -4.2% |
URITemplateRouterView_Arguments |
300.43 ns | 296.15 ns | -1.4% |
URITemplateRouter_Match_BasePath |
82.81 ns | 75.25 ns | -9.1% |
URITemplateRouterView_Match_BasePath |
89.32 ns | 73.94 ns | -17.2% |
JSONPath_Descendant_Filter_Nested |
971.11 ns | 921.43 ns | -5.1% |
OpenAPI_Format_Synthetic_3_1 |
32.63 ms | 26.95 ms | -17.4% |
Schema_Frame_WoT_References |
1.27 ms | 1.21 ms | -4.9% |
Schema_Frame_OMC_References |
5.60 ms | 5.40 ms | -3.7% |
Schema_Frame_OMC_Pointers |
10.60 ms | 10.90 ms | +2.9% |
Schema_Frame_OMC_Locations |
4.84 ms | 4.74 ms | -2.1% |
Schema_Frame_ISO_Language_Locations |
27.16 ms | 25.81 ms | -4.9% |
Schema_Frame_ISO_Language_Root |
161.28 ns | 159.39 ns | -1.2% |
Schema_Frame_KrakenD_References |
10.42 ms | 9.13 ms | -12.4% |
Schema_Frame_KrakenD_Reachable |
82.65 ms | 80.45 ms | -2.7% |
Schema_Frame_ISO_Language_Locations_To_JSON |
23.60 ms | 22.57 ms | -4.4% |
Schema_Frame_Many_Resources_References |
91.57 ms | 88.47 ms | -3.4% |
Schema_Frame_Deeply_Nested_References |
5.72 ms | 5.68 ms | -0.7% |
Schema_Format_ISO_Language |
30.71 ms | 29.29 ms | -4.6% |
Schema_Bundle_Meta_2020_12 |
304.57 us | 288.13 us | -5.4% |
Schema_Bundle_Many_Remotes_With_Fragments |
3.88 ms | 3.70 ms | -4.6% |
Pointer_Object_Traverse |
13.35 ns | 13.08 ns | -2.0% |
Pointer_Object_Try_Traverse |
13.05 ns | 13.26 ns | +1.6% |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
64.08 ns | 62.14 ns | -3.0% |
Pointer_Walker_Schema_ISO_Language |
782.72 us | 775.81 us | -0.9% |
Pointer_Untracked_Deeply_Nested |
811.92 us | 855.69 us | +5.4% |
Pointer_Tracked_Deeply_Nested |
1.04 ms | 1.00 ms | -3.1% |
Pointer_Position_Tracker_Get_Deeply_Nested |
401.84 ns | 394.60 ns | -1.8% |
Schema_Tracker_ISO_Language |
2.80 ms | 2.67 ms | -4.6% |
Schema_Tracker_ISO_Language_To_JSON |
8.16 ms | 7.93 ms | -2.9% |
JSON_Array_Of_Objects_Unique |
234.25 ns | 249.32 ns | +6.4% |
JSON_Array_Of_Integers_Unique_256 |
2.50 us | 2.45 us | -1.8% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
114.92 us | 98.88 us | -14.0% |
JSON_Parse_1 |
2.88 us | 2.72 us | -5.6% |
JSON_Parse_Real |
3.11 us | 2.96 us | -5.1% |
JSON_Parse_Decimal |
5.22 us | 5.10 us | -2.2% |
JSON_Parse_Schema_ISO_Language |
2.02 ms | 1.95 ms | -3.2% |
JSON_Parse_Integer |
2.38 us | 2.41 us | +1.5% |
JSON_Parse_String_NonSSO_Plain |
2.04 us | 1.96 us | -3.5% |
JSON_Parse_String_SSO_Plain |
1.61 us | 1.58 us | -2.1% |
JSON_Parse_String_Escape_Heavy |
8.83 us | 9.20 us | +4.2% |
JSON_Parse_Object_Short_Keys |
5.86 us | 5.88 us | +0.4% |
JSON_Parse_Object_Scalar_Properties |
2.96 us | 2.98 us | +0.7% |
JSON_Parse_Object_Array_Properties |
3.63 us | 3.63 us | +0.1% |
JSON_Parse_Object_Object_Properties |
3.65 us | 3.63 us | -0.5% |
JSON_Parse_Nested_Containers |
23.37 us | 23.55 us | +0.8% |
JSON_Fast_Hash_Helm_Chart_Lock |
41.31 ns | 38.45 ns | -6.9% |
JSON_Equality_Helm_Chart_Lock |
83.18 ns | 86.25 ns | +3.7% |
JSON_String_Equal_10 |
2.60 ns | 2.61 ns | +0.6% |
JSON_String_Equal_100 |
3.28 ns | 3.10 ns | -5.6% |
JSON_String_Equal_Small_By_Perfect_Hash_10 |
0.45 ns | 0.47 ns | +4.0% |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 |
7.40 ns | 7.47 ns | +0.9% |
JSON_String_Fast_Hash_10 |
2.29 ns | 2.20 ns | -3.9% |
JSON_String_Fast_Hash_100 |
2.25 ns | 2.23 ns | -1.0% |
JSON_String_Key_Hash_10 |
1.46 ns | 1.65 ns | +12.4% |
JSON_String_Key_Hash_100 |
7.71 ns | 7.63 ns | -1.1% |
JSON_Object_Defines_Miss_Same_Length |
1.61 ns | 1.47 ns | -8.8% |
JSON_Object_Defines_Miss_Too_Small |
1.36 ns | 1.86 ns | +37.1% |
JSON_Object_Defines_Miss_Too_Large |
1.42 ns | 1.48 ns | +3.6% |
JSON_From_String_Copy |
4.54 ns | 4.62 ns | +1.8% |
JSON_From_String_Temporary |
4.03 ns | 4.12 ns | +2.4% |
JSON_Number_To_Double |
14.53 ns | 15.00 ns | +3.2% |
JSON_Object_At_Last_Key_8 |
2.28 ns | 2.16 ns | -5.3% |
JSON_Object_At_Last_Key_32 |
8.09 ns | 7.72 ns | -4.6% |
JSON_Object_At_Last_Key_128 |
29.99 ns | 39.38 ns | +31.3% |
JSON_Object_At_Last_Key_512 |
140.92 ns | 133.37 ns | -5.4% |
JSON_Divisible_By_Decimal |
319.96 ns | 330.86 ns | +3.4% |
JSON_PropertySet_Contains |
23.30 ns | 21.26 ns | -8.8% |
JSON_PropertySet_Filter_Object_Properties |
17.42 ns | 20.89 ns | +20.0% |
JSON_PropertySet_Insert |
237.22 ns | 249.61 ns | +5.2% |
JSON_Stringify_Schema_Web_Of_Things |
31.65 us | 32.46 us | +2.6% |
JSON_Prettify_Schema_Web_Of_Things |
86.52 us | 92.50 us | +6.9% |
Regex_Lower_S_Or_Upper_S_Asterisk |
1.20 ns | 1.19 ns | -0.6% |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
1.23 ns | 1.18 ns | -4.6% |
Regex_Period_Asterisk |
1.24 ns | 1.24 ns | +0.7% |
Regex_Group_Period_Asterisk_Group |
1.21 ns | 1.25 ns | +3.1% |
Regex_Period_Plus |
1.24 ns | 1.17 ns | -5.2% |
Regex_Period |
1.25 ns | 1.19 ns | -5.0% |
Regex_Caret_Period_Plus_Dollar |
1.24 ns | 1.24 ns | +0.1% |
Regex_Caret_Group_Period_Plus_Group_Dollar |
1.24 ns | 1.25 ns | +0.9% |
Regex_Caret_Period_Asterisk_Dollar |
1.24 ns | 1.17 ns | -6.2% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
1.25 ns | 1.18 ns | -5.8% |
Regex_Caret_X_Hyphen |
3.40 ns | 3.54 ns | +4.0% |
Regex_Period_Md_Dollar |
13.47 ns | 13.16 ns | -2.3% |
Regex_Caret_Slash_Period_Asterisk |
3.68 ns | 3.45 ns | -6.2% |
Regex_Caret_Period_Range_Dollar |
1.62 ns | 1.17 ns | -27.8% |
Regex_Nested_Backtrack |
20.14 ns | 20.05 ns | -0.5% |
Signed-off-by: Juan Cruz Viotti <[email protected]>
There was a problem hiding this comment.
1 issue found across 1 file (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. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/core/jsonschema/known_walker.cc">
<violation number="1" location="src/core/jsonschema/known_walker.cc:5141">
P3: The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 `definitions`, 2019-09/2020-12 `$defs`), so add the "other" to remove the apparent contradiction.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| {}, | ||
| INSTANCES_ANY}}, | ||
| // Bundling has to place what it embeds somewhere a later pass reaches | ||
| // again, and every JSON Schema dialect reserves a location for exactly |
There was a problem hiding this comment.
P3: The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 definitions, 2019-09/2020-12 $defs), so add the "other" to remove the apparent contradiction.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5141:
<comment>The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 `definitions`, 2019-09/2020-12 `$defs`), so add the "other" to remove the apparent contradiction.</comment>
<file context>
@@ -5137,12 +5137,24 @@ constexpr std::array<Variant, 728> VARIANTS{{
- // well defined wherever the reader knows that vocabulary, unlike an
- // undeclared one, which later JSON Schema revisions warn against
+ // Bundling has to place what it embeds somewhere a later pass reaches
+ // again, and every JSON Schema dialect reserves a location for exactly
+ // that. This one reserves none, and closes its Schema Object to every
+ // property name but its own and those carrying the extension prefix, so
</file context>
| // again, and every JSON Schema dialect reserves a location for exactly | |
| // again, and every other JSON Schema dialect reserves a location for exactly |
Signed-off-by: Juan Cruz Viotti <[email protected]>
Benchmark
|
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Pointer_Tracked_Deeply_Nested |
1.01 ms | 1.74 ms | +71.7% |
Pointer_Object_Try_Traverse |
34.63 ns | 59.18 ns | +70.9% |
Schema_Frame_OMC_References |
8.32 ms | 14.13 ms | +69.7% |
Pointer_Position_Tracker_Get_Deeply_Nested |
348.65 ns | 577.15 ns | +65.5% |
Schema_Frame_OMC_Locations |
6.48 ms | 10.69 ms | +64.8% |
Schema_Frame_OMC_Pointers |
16.58 ms | 26.97 ms | +62.7% |
JSON_Prettify_Schema_Web_Of_Things |
157.52 us | 248.50 us | +57.8% |
Schema_Frame_KrakenD_References |
12.55 ms | 19.14 ms | +52.5% |
Schema_Frame_WoT_References |
1.72 ms | 2.60 ms | +50.8% |
JSON_Stringify_Schema_Web_Of_Things |
63.55 us | 95.72 us | +50.6% |
JSON_PropertySet_Filter_Object_Properties |
40.13 ns | 60.05 ns | +49.6% |
JSON_PropertySet_Insert |
340.98 ns | 480.02 ns | +40.8% |
Pointer_Walker_Schema_ISO_Language |
1.53 ms | 2.14 ms | +40.3% |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
155.68 ns | 217.67 ns | +39.8% |
Markdown_To_HTML_Pathological |
9.45 ms | 12.96 ms | +37.3% |
Schema_Frame_ISO_Language_Locations |
24.37 ms | 33.44 ms | +37.2% |
Schema_Tracker_ISO_Language_To_JSON |
10.29 ms | 13.89 ms | +35.1% |
Schema_Frame_KrakenD_Reachable |
167.81 ms | 226.39 ms | +34.9% |
JSON_Divisible_By_Decimal |
445.06 ns | 591.75 ns | +33.0% |
Schema_Frame_Deeply_Nested_References |
11.77 ms | 15.65 ms | +32.9% |
Pointer_Untracked_Deeply_Nested |
873.22 us | 1.14 ms | +30.4% |
Schema_Frame_ISO_Language_Locations_To_JSON |
20.05 ms | 25.86 ms | +29.0% |
Schema_Tracker_ISO_Language |
2.74 ms | 3.52 ms | +28.4% |
Markdown_To_HTML_Short_Descriptions |
319.59 ns | 406.10 ns | +27.1% |
HTML_Render_Table_100000 |
1.65 ms | 2.08 ms | +26.1% |
Schema_Frame_Many_Resources_References |
94.55 ms | 117.71 ms | +24.5% |
Markdown_To_HTML_Realistic_Document |
3.04 ms | 3.76 ms | +23.7% |
Pointer_Object_Traverse |
20.98 ns | 25.93 ns | +23.6% |
JSON_Object_At_Last_Key_512 |
201.55 ns | 248.50 ns | +23.3% |
Schema_Frame_ISO_Language_Root |
105.67 ns | 129.94 ns | +23.0% |
URITemplateRouterView_Arguments |
536.15 ns | 652.99 ns | +21.8% |
JSON_PropertySet_Contains |
51.26 ns | 61.77 ns | +20.5% |
OpenAPI_Format_Synthetic_3_1 |
39.91 ms | 48.09 ms | +20.5% |
JSON_From_String_Temporary |
7.41 ns | 8.91 ns | +20.2% |
URITemplateRouter_Create |
17.42 us | 20.68 us | +18.7% |
JSON_Object_At_Last_Key_32 |
14.02 ns | 16.61 ns | +18.5% |
JSON_Object_At_Last_Key_128 |
71.76 ns | 83.77 ns | +16.7% |
Schema_Format_ISO_Language |
23.37 ms | 27.11 ms | +16.0% |
GZIP_Decompress_ISO_Language_Set_3_Schema |
314.24 us | 360.67 us | +14.8% |
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations |
4.23 ms | 4.79 ms | +13.2% |
JOSE_VerifySignature_RS256 |
21.78 us | 24.57 us | +12.8% |
JSONLD_Catalog_Materialize |
2.03 ms | 2.28 ms | +12.2% |
JSONLD_Catalog_Annotation_List_Populate |
504.30 us | 564.39 us | +11.9% |
JSON_Number_To_Double |
11.44 ns | 12.80 ns | +11.9% |
HTML_Build_Table_100000 |
26.52 ms | 29.59 ms | +11.6% |
GZIP_Compress_ISO_Language_Set_3_Locations |
27.53 ms | 30.70 ms | +11.5% |
JSON_String_Fast_Hash_100 |
2.29 ns | 2.54 ns | +10.8% |
Regex_Period |
2.92 ns | 3.20 ns | +9.7% |
JSON_Equality_Helm_Chart_Lock |
172.12 ns | 188.50 ns | +9.5% |
URITemplateRouter_Match |
171.48 ns | 187.14 ns | +9.1% |
JSON_Object_Defines_Miss_Same_Length |
3.30 ns | 3.58 ns | +8.5% |
JSONL_Parse_Large |
6.30 ms | 6.82 ms | +8.3% |
Schema_Bundle_Many_Remotes_With_Fragments |
5.40 ms | 5.83 ms | +7.9% |
URITemplateRouterView_Match |
125.22 ns | 134.24 ns | +7.2% |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 |
4.16 ns | 4.45 ns | +7.1% |
GZIP_Decompress_ISO_Language_Set_3_Locations |
2.96 ms | 3.16 ms | +6.7% |
JSON_String_Equal_100 |
7.10 ns | 7.49 ns | +5.5% |
Crypto_AES_GCM_Encrypt_256_1KB |
3.68 us | 3.86 us | +5.1% |
JSON_Parse_Object_Array_Properties |
3.53 us | 3.34 us | -5.5% |
URITemplateRouterView_Match_BasePath |
158.19 ns | 148.82 ns | -5.9% |
Regex_Period_Plus |
2.66 ns | 2.48 ns | -6.6% |
Regex_Caret_Period_Plus_Dollar |
2.95 ns | 2.71 ns | -8.0% |
JSON_Object_At_Last_Key_8 |
5.27 ns | 4.80 ns | -8.9% |
Regex_Caret_X_Hyphen |
8.09 ns | 7.33 ns | -9.4% |
JSON_Array_Of_Objects_Unique |
478.43 ns | 433.56 ns | -9.4% |
Regex_Caret_Slash_Period_Asterisk |
6.58 ns | 5.93 ns | -9.9% |
JSON_Parse_Object_Scalar_Properties |
3.51 us | 3.15 us | -10.3% |
JSON_Array_Of_Integers_Unique_256 |
5.56 us | 4.93 us | -11.3% |
JSON_Parse_Integer |
3.28 us | 2.90 us | -11.5% |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.81 ns | 2.46 ns | -12.3% |
Crypto_CRC32_Large_JSONL |
24.28 us | 20.96 us | -13.6% |
JSON_Parse_String_NonSSO_Plain |
3.80 us | 3.22 us | -15.1% |
Regex_Period_Asterisk |
2.56 ns | 2.13 ns | -16.7% |
JOSE_VerifySignature_ES512 |
1.17 ms | 973.75 us | -17.0% |
JSON_Parse_Object_Short_Keys |
6.69 us | 5.55 us | -17.0% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.71 ns | 2.21 ns | -18.5% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
205.10 us | 166.36 us | -18.9% |
JSON_Parse_Schema_ISO_Language |
2.96 ms | 2.37 ms | -20.0% |
JSON_String_Key_Hash_10 |
2.46 ns | 1.96 ns | -20.2% |
Regex_Nested_Backtrack |
44.67 ns | 35.53 ns | -20.5% |
JSON_Parse_String_SSO_Plain |
2.27 us | 1.79 us | -21.0% |
JSON_Parse_String_Escape_Heavy |
22.48 us | 17.66 us | -21.4% |
Regex_Period_Md_Dollar |
30.35 ns | 23.60 ns | -22.3% |
Regex_Lower_S_Or_Upper_S_Asterisk |
2.92 ns | 2.27 ns | -22.3% |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.07 ns | 2.36 ns | -23.2% |
Regex_Caret_Period_Range_Dollar |
3.09 ns | 2.27 ns | -26.5% |
Regex_Group_Period_Asterisk_Group |
2.75 ns | 1.99 ns | -27.5% |
JSON_Parse_Decimal |
7.18 us | 5.20 us | -27.6% |
Regex_Caret_Period_Asterisk_Dollar |
2.84 ns | 1.86 ns | -34.5% |
All 110 benchmarks
| Benchmark | main |
This branch | Change |
|---|---|---|---|
Regex_Lower_S_Or_Upper_S_Asterisk |
2.92 ns | 2.27 ns | -22.3% |
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar |
2.81 ns | 2.46 ns | -12.3% |
Regex_Period_Asterisk |
2.56 ns | 2.13 ns | -16.7% |
Regex_Group_Period_Asterisk_Group |
2.75 ns | 1.99 ns | -27.5% |
Regex_Period_Plus |
2.66 ns | 2.48 ns | -6.6% |
Regex_Period |
2.92 ns | 3.20 ns | +9.7% |
Regex_Caret_Period_Plus_Dollar |
2.95 ns | 2.71 ns | -8.0% |
Regex_Caret_Group_Period_Plus_Group_Dollar |
3.07 ns | 2.36 ns | -23.2% |
Regex_Caret_Period_Asterisk_Dollar |
2.84 ns | 1.86 ns | -34.5% |
Regex_Caret_Group_Period_Asterisk_Group_Dollar |
2.71 ns | 2.21 ns | -18.5% |
Regex_Caret_X_Hyphen |
8.09 ns | 7.33 ns | -9.4% |
Regex_Period_Md_Dollar |
30.35 ns | 23.60 ns | -22.3% |
Regex_Caret_Slash_Period_Asterisk |
6.58 ns | 5.93 ns | -9.9% |
Regex_Caret_Period_Range_Dollar |
3.09 ns | 2.27 ns | -26.5% |
Regex_Nested_Backtrack |
44.67 ns | 35.53 ns | -20.5% |
JSON_Array_Of_Objects_Unique |
478.43 ns | 433.56 ns | -9.4% |
JSON_Array_Of_Integers_Unique_256 |
5.56 us | 4.93 us | -11.3% |
JSON_Array_Of_Strings_Unique_Colliding_256 |
205.10 us | 166.36 us | -18.9% |
JSON_Parse_1 |
3.46 us | 3.45 us | -0.5% |
JSON_Parse_Real |
3.69 us | 3.52 us | -4.6% |
JSON_Parse_Decimal |
7.18 us | 5.20 us | -27.6% |
JSON_Parse_Schema_ISO_Language |
2.96 ms | 2.37 ms | -20.0% |
JSON_Parse_Integer |
3.28 us | 2.90 us | -11.5% |
JSON_Parse_String_NonSSO_Plain |
3.80 us | 3.22 us | -15.1% |
JSON_Parse_String_SSO_Plain |
2.27 us | 1.79 us | -21.0% |
JSON_Parse_String_Escape_Heavy |
22.48 us | 17.66 us | -21.4% |
JSON_Parse_Object_Short_Keys |
6.69 us | 5.55 us | -17.0% |
JSON_Parse_Object_Scalar_Properties |
3.51 us | 3.15 us | -10.3% |
JSON_Parse_Object_Array_Properties |
3.53 us | 3.34 us | -5.5% |
JSON_Parse_Object_Object_Properties |
3.64 us | 3.55 us | -2.6% |
JSON_Parse_Nested_Containers |
27.20 us | 26.05 us | -4.2% |
JSON_Fast_Hash_Helm_Chart_Lock |
62.82 ns | 61.80 ns | -1.6% |
JSON_Equality_Helm_Chart_Lock |
172.12 ns | 188.50 ns | +9.5% |
JSON_String_Equal_10 |
7.26 ns | 7.21 ns | -0.6% |
JSON_String_Equal_100 |
7.10 ns | 7.49 ns | +5.5% |
JSON_String_Equal_Small_By_Perfect_Hash_10 |
0.38 ns | 0.40 ns | +5.0% |
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 |
4.16 ns | 4.45 ns | +7.1% |
JSON_String_Fast_Hash_10 |
2.98 ns | 3.04 ns | +2.0% |
JSON_String_Fast_Hash_100 |
2.29 ns | 2.54 ns | +10.8% |
JSON_String_Key_Hash_10 |
2.46 ns | 1.96 ns | -20.2% |
JSON_String_Key_Hash_100 |
2.53 ns | 2.47 ns | -2.1% |
JSON_Object_Defines_Miss_Same_Length |
3.30 ns | 3.58 ns | +8.5% |
JSON_Object_Defines_Miss_Too_Small |
5.59 ns | 5.62 ns | +0.4% |
JSON_Object_Defines_Miss_Too_Large |
3.21 ns | 3.24 ns | +0.8% |
JSON_From_String_Copy |
12.66 ns | 12.59 ns | -0.6% |
JSON_From_String_Temporary |
7.41 ns | 8.91 ns | +20.2% |
JSON_Number_To_Double |
11.44 ns | 12.80 ns | +11.9% |
JSON_Object_At_Last_Key_8 |
5.27 ns | 4.80 ns | -8.9% |
JSON_Object_At_Last_Key_32 |
14.02 ns | 16.61 ns | +18.5% |
JSON_Object_At_Last_Key_128 |
71.76 ns | 83.77 ns | +16.7% |
JSON_Object_At_Last_Key_512 |
201.55 ns | 248.50 ns | +23.3% |
JSON_Divisible_By_Decimal |
445.06 ns | 591.75 ns | +33.0% |
JSON_PropertySet_Contains |
51.26 ns | 61.77 ns | +20.5% |
JSON_PropertySet_Filter_Object_Properties |
40.13 ns | 60.05 ns | +49.6% |
JSON_PropertySet_Insert |
340.98 ns | 480.02 ns | +40.8% |
JSON_Stringify_Schema_Web_Of_Things |
63.55 us | 95.72 us | +50.6% |
JSON_Prettify_Schema_Web_Of_Things |
157.52 us | 248.50 us | +57.8% |
Pointer_Object_Traverse |
20.98 ns | 25.93 ns | +23.6% |
Pointer_Object_Try_Traverse |
34.63 ns | 59.18 ns | +70.9% |
Pointer_Push_Back_Pointer_To_Weak_Pointer |
155.68 ns | 217.67 ns | +39.8% |
Pointer_Walker_Schema_ISO_Language |
1.53 ms | 2.14 ms | +40.3% |
Pointer_Untracked_Deeply_Nested |
873.22 us | 1.14 ms | +30.4% |
Pointer_Tracked_Deeply_Nested |
1.01 ms | 1.74 ms | +71.7% |
Pointer_Position_Tracker_Get_Deeply_Nested |
348.65 ns | 577.15 ns | +65.5% |
Schema_Tracker_ISO_Language |
2.74 ms | 3.52 ms | +28.4% |
Schema_Tracker_ISO_Language_To_JSON |
10.29 ms | 13.89 ms | +35.1% |
Schema_Frame_WoT_References |
1.72 ms | 2.60 ms | +50.8% |
Schema_Frame_OMC_References |
8.32 ms | 14.13 ms | +69.7% |
Schema_Frame_OMC_Pointers |
16.58 ms | 26.97 ms | +62.7% |
Schema_Frame_OMC_Locations |
6.48 ms | 10.69 ms | +64.8% |
Schema_Frame_ISO_Language_Locations |
24.37 ms | 33.44 ms | +37.2% |
Schema_Frame_ISO_Language_Root |
105.67 ns | 129.94 ns | +23.0% |
Schema_Frame_KrakenD_References |
12.55 ms | 19.14 ms | +52.5% |
Schema_Frame_KrakenD_Reachable |
167.81 ms | 226.39 ms | +34.9% |
Schema_Frame_ISO_Language_Locations_To_JSON |
20.05 ms | 25.86 ms | +29.0% |
Schema_Frame_Many_Resources_References |
94.55 ms | 117.71 ms | +24.5% |
Schema_Frame_Deeply_Nested_References |
11.77 ms | 15.65 ms | +32.9% |
Schema_Format_ISO_Language |
23.37 ms | 27.11 ms | +16.0% |
Schema_Bundle_Meta_2020_12 |
428.49 us | 418.13 us | -2.4% |
Schema_Bundle_Many_Remotes_With_Fragments |
5.40 ms | 5.83 ms | +7.9% |
OpenAPI_Format_Synthetic_3_1 |
39.91 ms | 48.09 ms | +20.5% |
JSONPath_Descendant_Filter_Nested |
1.24 us | 1.30 us | +4.8% |
URITemplateRouter_Create |
17.42 us | 20.68 us | +18.7% |
URITemplateRouter_Match |
171.48 ns | 187.14 ns | +9.1% |
URITemplateRouterView_Restore |
11.71 us | 11.46 us | -2.1% |
URITemplateRouterView_Match |
125.22 ns | 134.24 ns | +7.2% |
URITemplateRouterView_Arguments |
536.15 ns | 652.99 ns | +21.8% |
URITemplateRouter_Match_BasePath |
204.67 ns | 210.21 ns | +2.7% |
URITemplateRouterView_Match_BasePath |
158.19 ns | 148.82 ns | -5.9% |
JSONL_Parse_Large |
6.30 ms | 6.82 ms | +8.3% |
JSONL_Parse_Large_GZIP |
6.27 ms | 6.36 ms | +1.4% |
JSONLD_Catalog_Annotation_List_Populate |
504.30 us | 564.39 us | +11.9% |
JSONLD_Catalog_Materialize |
2.03 ms | 2.28 ms | +12.2% |
HTML_Build_Table_100000 |
26.52 ms | 29.59 ms | +11.6% |
HTML_Render_Table_100000 |
1.65 ms | 2.08 ms | +26.1% |
Markdown_To_HTML_Realistic_Document |
3.04 ms | 3.76 ms | +23.7% |
Markdown_To_HTML_Pathological |
9.45 ms | 12.96 ms | +37.3% |
Markdown_To_HTML_Short_Descriptions |
319.59 ns | 406.10 ns | +27.1% |
GZIP_Compress_ISO_Language_Set_3_Locations |
27.53 ms | 30.70 ms | +11.5% |
GZIP_Decompress_ISO_Language_Set_3_Locations |
2.96 ms | 3.16 ms | +6.7% |
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations |
4.23 ms | 4.79 ms | +13.2% |
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations |
5.30 ms | 5.36 ms | +1.0% |
GZIP_Compress_ISO_Language_Set_3_Schema |
1.89 ms | 1.90 ms | +0.8% |
GZIP_Decompress_ISO_Language_Set_3_Schema |
314.24 us | 360.67 us | +14.8% |
JOSE_VerifySignature_RS256 |
21.78 us | 24.57 us | +12.8% |
JOSE_VerifySignature_ES512 |
1.17 ms | 973.75 us | -17.0% |
Crypto_CRC32_Large_JSONL |
24.28 us | 20.96 us | -13.6% |
Crypto_AES_GCM_Encrypt_128_1KB |
3.69 us | 3.72 us | +0.8% |
Crypto_AES_GCM_Decrypt_128_1KB |
3.87 us | 4.02 us | +3.8% |
Crypto_AES_GCM_Encrypt_256_1KB |
3.68 us | 3.86 us | +5.1% |
Signed-off-by: Juan Cruz Viotti [email protected]