Skip to content

[WIP] Add OpenAPI 3.0 support at the JSON Schema level - #2896

Draft
jviotti wants to merge 1 commit into
mainfrom
openapi-3-0
Draft

jviotti wants to merge 1 commit into
mainfrom
openapi-3-0

Conversation

@jviotti

@jviotti jviotti commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@github-actions

Copy link
Copy Markdown

Benchmark linux/llvm

Measured against main at 22e6e95.

3 slower, 4 faster, 96 within 5%.

Benchmark main This branch Change
Markdown_To_HTML_Pathological 11.40 ms 12.46 ms +9.3%
JSON_Object_Defines_Miss_Same_Length 3.56 ns 3.86 ns +8.4%
HTML_Build_Table_100000 34.51 ms 36.54 ms +5.9%
Schema_Bundle_Meta_2020_12 469.73 us 446.11 us -5.0%
JSON_From_String_Copy 8.88 ns 7.86 ns -11.5%
URITemplateRouterView_Match 137.09 ns 111.52 ns -18.6%
URITemplateRouterView_Match_BasePath 155.83 ns 126.71 ns -18.7%
All 103 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 1.43 ns 1.43 ns -0.1%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.43 ns 1.43 ns -0.0%
Regex_Period_Asterisk 1.72 ns 1.71 ns -0.8%
Regex_Group_Period_Asterisk_Group 1.71 ns 1.71 ns -0.3%
Regex_Period_Plus 2.09 ns 2.04 ns -2.5%
Regex_Period 2.13 ns 2.07 ns -2.9%
Regex_Caret_Period_Plus_Dollar 2.78 ns 2.91 ns +4.4%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.30 ns 2.28 ns -0.9%
Regex_Caret_Period_Asterisk_Dollar 1.42 ns 1.42 ns -0.0%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.43 ns 1.42 ns -0.3%
Regex_Caret_X_Hyphen 3.94 ns 3.96 ns +0.6%
Regex_Period_Md_Dollar 19.37 ns 19.30 ns -0.3%
Regex_Caret_Slash_Period_Asterisk 3.74 ns 3.72 ns -0.6%
Regex_Caret_Period_Range_Dollar 2.24 ns 2.35 ns +5.0%
Regex_Nested_Backtrack 29.63 ns 30.55 ns +3.1%
JSON_Array_Of_Objects_Unique 339.18 ns 334.55 ns -1.4%
JSON_Parse_1 3.75 us 3.69 us -1.6%
JSON_Parse_Real 3.81 us 3.78 us -0.8%
JSON_Parse_Decimal 6.31 us 6.04 us -4.3%
JSON_Parse_Schema_ISO_Language 2.63 ms 2.59 ms -1.5%
JSON_Parse_Integer 2.77 us 2.64 us -4.4%
JSON_Parse_String_NonSSO_Plain 2.26 us 2.26 us -0.4%
JSON_Parse_String_SSO_Plain 2.05 us 2.06 us +0.2%
JSON_Parse_String_Escape_Heavy 10.52 us 10.58 us +0.5%
JSON_Parse_Object_Short_Keys 6.20 us 6.11 us -1.4%
JSON_Parse_Object_Scalar_Properties 3.17 us 3.15 us -0.6%
JSON_Parse_Object_Array_Properties 4.29 us 4.33 us +0.9%
JSON_Parse_Object_Object_Properties 4.20 us 4.14 us -1.5%
JSON_Parse_Nested_Containers 27.95 us 27.95 us +0.0%
JSON_Fast_Hash_Helm_Chart_Lock 53.80 ns 53.60 ns -0.4%
JSON_Equality_Helm_Chart_Lock 116.03 ns 116.33 ns +0.3%
JSON_String_Equal_10 3.96 ns 3.99 ns +0.7%
JSON_String_Equal_100 5.21 ns 5.17 ns -0.9%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.59 ns 0.59 ns -1.0%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 8.98 ns 8.81 ns -1.8%
JSON_String_Fast_Hash_10 2.01 ns 1.99 ns -1.0%
JSON_String_Fast_Hash_100 2.01 ns 2.00 ns -0.5%
JSON_String_Key_Hash_10 2.01 ns 2.00 ns -0.6%
JSON_String_Key_Hash_100 6.60 ns 6.56 ns -0.7%
JSON_Object_Defines_Miss_Same_Length 3.56 ns 3.86 ns +8.4%
JSON_Object_Defines_Miss_Too_Small 3.25 ns 3.32 ns +2.0%
JSON_Object_Defines_Miss_Too_Large 4.03 ns 4.03 ns +0.1%
JSON_From_String_Copy 8.88 ns 7.86 ns -11.5%
JSON_From_String_Temporary 6.45 ns 6.45 ns +0.1%
JSON_Number_To_Double 18.22 ns 18.22 ns +0.0%
JSON_Object_At_Last_Key_8 3.62 ns 3.58 ns -1.0%
JSON_Object_At_Last_Key_32 11.91 ns 11.53 ns -3.2%
JSON_Object_At_Last_Key_128 44.35 ns 44.43 ns +0.2%
JSON_Object_At_Last_Key_512 235.24 ns 232.28 ns -1.3%
JSON_Divisible_By_Decimal 202.31 ns 202.37 ns +0.0%
JSON_PropertySet_Contains 36.99 ns 37.08 ns +0.3%
JSON_PropertySet_Filter_Object_Properties 35.64 ns 35.35 ns -0.8%
JSON_PropertySet_Insert 445.00 ns 443.72 ns -0.3%
Pointer_Object_Traverse 20.01 ns 20.08 ns +0.3%
Pointer_Object_Try_Traverse 24.00 ns 23.99 ns -0.0%
Pointer_Push_Back_Pointer_To_Weak_Pointer 111.67 ns 110.56 ns -1.0%
Pointer_Walker_Schema_ISO_Language 1.85 ms 1.84 ms -0.2%
Pointer_Untracked_Deeply_Nested 1.01 ms 1.02 ms +1.0%
Pointer_Tracked_Deeply_Nested 1.30 ms 1.29 ms -0.8%
Pointer_Position_Tracker_Get_Deeply_Nested 526.70 ns 524.27 ns -0.5%
Schema_Tracker_ISO_Language 3.55 ms 3.52 ms -0.7%
Schema_Tracker_ISO_Language_To_JSON 12.75 ms 12.67 ms -0.7%
Schema_Frame_WoT_References 1.81 ms 1.74 ms -4.0%
Schema_Frame_OMC_References 8.02 ms 7.79 ms -2.9%
Schema_Frame_OMC_Pointers 14.96 ms 14.28 ms -4.6%
Schema_Frame_OMC_Locations 6.88 ms 6.77 ms -1.7%
Schema_Frame_ISO_Language_Locations 33.51 ms 33.27 ms -0.7%
Schema_Frame_ISO_Language_Root 229.07 ns 225.60 ns -1.5%
Schema_Frame_KrakenD_References 12.66 ms 12.53 ms -1.0%
Schema_Frame_KrakenD_Reachable 106.69 ms 103.04 ms -3.4%
Schema_Frame_ISO_Language_Locations_To_JSON 28.17 ms 26.76 ms -5.0%
Schema_Frame_Many_Resources_References 129.35 ms 129.31 ms -0.0%
Schema_Frame_Deeply_Nested_References 8.90 ms 8.77 ms -1.4%
Schema_Format_ISO_Language 37.20 ms 37.37 ms +0.4%
Schema_Bundle_Meta_2020_12 469.73 us 446.11 us -5.0%
Schema_Bundle_Many_Remotes_With_Fragments 5.18 ms 4.97 ms -4.1%
OpenAPI_Format_Synthetic_3_1 36.12 ms 34.43 ms -4.7%
JSONPath_Descendant_Filter_Nested 1.15 us 1.14 us -0.9%
URITemplateRouter_Create 15.86 us 15.79 us -0.5%
URITemplateRouter_Match 150.57 ns 155.80 ns +3.5%
URITemplateRouterView_Restore 3.08 us 3.04 us -1.4%
URITemplateRouterView_Match 137.09 ns 111.52 ns -18.6%
URITemplateRouterView_Arguments 387.76 ns 378.84 ns -2.3%
URITemplateRouter_Match_BasePath 172.28 ns 172.59 ns +0.2%
URITemplateRouterView_Match_BasePath 155.83 ns 126.71 ns -18.7%
JSONL_Parse_Large 7.37 ms 7.39 ms +0.2%
JSONL_Parse_Large_GZIP 7.55 ms 7.64 ms +1.1%
JSONLD_Catalog_Annotation_List_Populate 620.76 us 618.57 us -0.4%
JSONLD_Catalog_Materialize 2.99 ms 2.98 ms -0.5%
HTML_Build_Table_100000 34.51 ms 36.54 ms +5.9%
HTML_Render_Table_100000 2.83 ms 2.85 ms +0.8%
Markdown_To_HTML_Realistic_Document 3.39 ms 3.45 ms +1.8%
Markdown_To_HTML_Pathological 11.40 ms 12.46 ms +9.3%
Markdown_To_HTML_Short_Descriptions 396.58 ns 400.81 ns +1.1%
GZIP_Compress_ISO_Language_Set_3_Locations 28.05 ms 28.20 ms +0.5%
GZIP_Decompress_ISO_Language_Set_3_Locations 3.64 ms 3.61 ms -0.6%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 5.06 ms 5.06 ms -0.0%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 7.09 ms 7.06 ms -0.4%
GZIP_Compress_ISO_Language_Set_3_Schema 1.97 ms 1.99 ms +0.9%
GZIP_Decompress_ISO_Language_Set_3_Schema 367.13 us 366.37 us -0.2%
JOSE_VerifySignature_RS256 40.43 us 39.88 us -1.4%
JOSE_VerifySignature_ES512 1.40 ms 1.43 ms +2.4%
Crypto_CRC32_Large_JSONL 46.33 us 46.11 us -0.5%

@github-actions

Copy link
Copy Markdown

Benchmark windows/msvc

Measured against main at 22e6e95.

5 slower, 7 faster, 91 within 5%.

Benchmark main This branch Change
JSON_String_Fast_Hash_10 6.36 ns 7.46 ns +17.3%
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.52 ns 188.20 ns +13.0%
JSON_String_Fast_Hash_100 6.76 ns 7.36 ns +8.9%
Schema_Frame_Deeply_Nested_References 21.42 ms 23.17 ms +8.1%
Pointer_Position_Tracker_Get_Deeply_Nested 564.68 ns 603.43 ns +6.9%
JSON_Equality_Helm_Chart_Lock 230.05 ns 215.80 ns -6.2%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 15.55 ms 14.38 ms -7.5%
JSON_Parse_Object_Object_Properties 12.57 us 11.50 us -8.5%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 15.60 ns 14.18 ns -9.1%
JSON_String_Key_Hash_10 5.58 ns 5.02 ns -10.0%
JSON_Fast_Hash_Helm_Chart_Lock 116.33 ns 104.59 ns -10.1%
JSON_String_Key_Hash_100 14.98 ns 11.86 ns -20.8%
All 103 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 4.71 ns 4.71 ns -0.0%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.70 ns 4.70 ns -0.1%
Regex_Period_Asterisk 4.70 ns 4.70 ns +0.1%
Regex_Group_Period_Asterisk_Group 4.70 ns 4.70 ns -0.2%
Regex_Period_Plus 4.65 ns 4.61 ns -0.7%
Regex_Period 4.44 ns 4.47 ns +0.6%
Regex_Caret_Period_Plus_Dollar 4.63 ns 4.62 ns -0.2%
Regex_Caret_Group_Period_Plus_Group_Dollar 4.45 ns 4.49 ns +1.0%
Regex_Caret_Period_Asterisk_Dollar 4.70 ns 4.70 ns +0.0%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.70 ns 4.71 ns +0.2%
Regex_Caret_X_Hyphen 7.85 ns 7.83 ns -0.3%
Regex_Period_Md_Dollar 46.78 ns 46.99 ns +0.5%
Regex_Caret_Slash_Period_Asterisk 7.52 ns 7.53 ns +0.2%
Regex_Caret_Period_Range_Dollar 5.33 ns 5.33 ns +0.1%
Regex_Nested_Backtrack 58.98 ns 60.43 ns +2.5%
JSON_Array_Of_Objects_Unique 573.79 ns 592.86 ns +3.3%
JSON_Parse_1 8.80 us 9.03 us +2.6%
JSON_Parse_Real 16.05 us 15.93 us -0.8%
JSON_Parse_Decimal 11.77 us 11.80 us +0.3%
JSON_Parse_Schema_ISO_Language 7.52 ms 7.28 ms -3.1%
JSON_Parse_Integer 6.14 us 6.19 us +0.7%
JSON_Parse_String_NonSSO_Plain 8.36 us 8.35 us -0.1%
JSON_Parse_String_SSO_Plain 3.83 us 3.67 us -4.1%
JSON_Parse_String_Escape_Heavy 21.53 us 21.57 us +0.2%
JSON_Parse_Object_Short_Keys 13.01 us 13.17 us +1.2%
JSON_Parse_Object_Scalar_Properties 6.67 us 6.77 us +1.5%
JSON_Parse_Object_Array_Properties 11.29 us 11.33 us +0.4%
JSON_Parse_Object_Object_Properties 12.57 us 11.50 us -8.5%
JSON_Parse_Nested_Containers 80.09 us 79.66 us -0.5%
JSON_Fast_Hash_Helm_Chart_Lock 116.33 ns 104.59 ns -10.1%
JSON_Equality_Helm_Chart_Lock 230.05 ns 215.80 ns -6.2%
JSON_String_Equal_10 10.58 ns 10.38 ns -1.8%
JSON_String_Equal_100 11.81 ns 11.67 ns -1.2%
JSON_String_Equal_Small_By_Perfect_Hash_10 2.22 ns 2.20 ns -0.9%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 15.60 ns 14.18 ns -9.1%
JSON_String_Fast_Hash_10 6.36 ns 7.46 ns +17.3%
JSON_String_Fast_Hash_100 6.76 ns 7.36 ns +8.9%
JSON_String_Key_Hash_10 5.58 ns 5.02 ns -10.0%
JSON_String_Key_Hash_100 14.98 ns 11.86 ns -20.8%
JSON_Object_Defines_Miss_Same_Length 3.52 ns 3.46 ns -1.9%
JSON_Object_Defines_Miss_Too_Small 4.15 ns 4.09 ns -1.3%
JSON_Object_Defines_Miss_Too_Large 4.27 ns 4.08 ns -4.5%
JSON_From_String_Copy 65.75 ns 64.79 ns -1.5%
JSON_From_String_Temporary 59.26 ns 58.21 ns -1.8%
JSON_Number_To_Double 123.51 ns 119.87 ns -2.9%
JSON_Object_At_Last_Key_8 7.25 ns 7.22 ns -0.5%
JSON_Object_At_Last_Key_32 23.16 ns 22.96 ns -0.9%
JSON_Object_At_Last_Key_128 89.94 ns 88.74 ns -1.3%
JSON_Object_At_Last_Key_512 432.87 ns 422.75 ns -2.3%
JSON_Divisible_By_Decimal 302.76 ns 302.60 ns -0.1%
JSON_PropertySet_Contains 79.72 ns 79.34 ns -0.5%
JSON_PropertySet_Filter_Object_Properties 51.02 ns 50.17 ns -1.7%
JSON_PropertySet_Insert 1.30 us 1.31 us +0.7%
Pointer_Object_Traverse 69.97 ns 69.95 ns -0.0%
Pointer_Object_Try_Traverse 70.60 ns 73.60 ns +4.2%
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.52 ns 188.20 ns +13.0%
Pointer_Walker_Schema_ISO_Language 10.67 ms 10.80 ms +1.2%
Pointer_Untracked_Deeply_Nested 2.43 ms 2.42 ms -0.6%
Pointer_Tracked_Deeply_Nested 3.70 ms 3.67 ms -0.7%
Pointer_Position_Tracker_Get_Deeply_Nested 564.68 ns 603.43 ns +6.9%
Schema_Tracker_ISO_Language 10.76 ms 10.28 ms -4.5%
Schema_Tracker_ISO_Language_To_JSON 62.79 ms 61.42 ms -2.2%
Schema_Frame_WoT_References 5.50 ms 5.48 ms -0.4%
Schema_Frame_OMC_References 22.45 ms 22.62 ms +0.7%
Schema_Frame_OMC_Pointers 43.22 ms 42.23 ms -2.3%
Schema_Frame_OMC_Locations 19.41 ms 19.45 ms +0.2%
Schema_Frame_ISO_Language_Locations 78.06 ms 76.92 ms -1.5%
Schema_Frame_ISO_Language_Root 2.26 us 2.19 us -2.8%
Schema_Frame_KrakenD_References 38.64 ms 37.77 ms -2.2%
Schema_Frame_KrakenD_Reachable 299.07 ms 296.92 ms -0.7%
Schema_Frame_ISO_Language_Locations_To_JSON 157.53 ms 154.15 ms -2.1%
Schema_Frame_Many_Resources_References 677.96 ms 689.99 ms +1.8%
Schema_Frame_Deeply_Nested_References 21.42 ms 23.17 ms +8.1%
Schema_Format_ISO_Language 83.56 ms 82.09 ms -1.8%
Schema_Bundle_Meta_2020_12 1.51 ms 1.50 ms -0.8%
Schema_Bundle_Many_Remotes_With_Fragments 29.42 ms 29.07 ms -1.2%
OpenAPI_Format_Synthetic_3_1 107.89 ms 105.18 ms -2.5%
JSONPath_Descendant_Filter_Nested 2.40 us 2.44 us +1.8%
URITemplateRouter_Create 40.06 us 39.63 us -1.1%
URITemplateRouter_Match 232.66 ns 231.60 ns -0.5%
URITemplateRouterView_Restore 33.60 us 33.69 us +0.3%
URITemplateRouterView_Match 179.09 ns 177.18 ns -1.1%
URITemplateRouterView_Arguments 532.12 ns 539.54 ns +1.4%
URITemplateRouter_Match_BasePath 264.40 ns 264.23 ns -0.1%
URITemplateRouterView_Match_BasePath 204.32 ns 201.07 ns -1.6%
JSONL_Parse_Large 32.87 ms 32.97 ms +0.3%
JSONL_Parse_Large_GZIP 31.68 ms 31.58 ms -0.3%
JSONLD_Catalog_Annotation_List_Populate 3.00 ms 2.98 ms -0.7%
JSONLD_Catalog_Materialize 7.80 ms 7.75 ms -0.6%
HTML_Build_Table_100000 66.52 ms 66.70 ms +0.3%
HTML_Render_Table_100000 7.63 ms 7.62 ms -0.0%
Markdown_To_HTML_Realistic_Document 5.70 ms 5.61 ms -1.5%
Markdown_To_HTML_Pathological 17.29 ms 17.76 ms +2.8%
Markdown_To_HTML_Short_Descriptions 692.05 ns 699.85 ns +1.1%
GZIP_Compress_ISO_Language_Set_3_Locations 37.82 ms 37.39 ms -1.1%
GZIP_Decompress_ISO_Language_Set_3_Locations 9.60 ms 9.70 ms +1.0%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 11.92 ms 11.97 ms +0.4%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 15.55 ms 14.38 ms -7.5%
GZIP_Compress_ISO_Language_Set_3_Schema 2.32 ms 2.29 ms -1.1%
GZIP_Decompress_ISO_Language_Set_3_Schema 624.66 us 625.01 us +0.1%
JOSE_VerifySignature_RS256 21.34 us 21.28 us -0.3%
JOSE_VerifySignature_ES512 1.37 ms 1.36 ms -0.4%
Crypto_CRC32_Large_JSONL 103.13 us 103.26 us +0.1%

@github-actions

Copy link
Copy Markdown

Benchmark linux/gcc

Measured against main at 22e6e95.

12 slower, 9 faster, 82 within 5%.

Benchmark main This branch Change
Regex_Caret_Period_Range_Dollar 3.34 ns 4.14 ns +24.0%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 11.49 ns 14.13 ns +23.0%
JSON_Parse_Object_Array_Properties 7.02 us 8.58 us +22.1%
JSON_Parse_Object_Object_Properties 7.01 us 8.39 us +19.7%
GZIP_Decompress_ISO_Language_Set_3_Schema 344.67 us 400.16 us +16.1%
JSON_Parse_Nested_Containers 40.98 us 46.49 us +13.4%
JSON_String_Equal_100 6.46 ns 7.16 ns +10.8%
Pointer_Object_Traverse 24.37 ns 26.03 ns +6.8%
JSON_Parse_String_Escape_Heavy 15.54 us 16.57 us +6.7%
JSON_Parse_String_SSO_Plain 2.97 us 3.15 us +6.2%
URITemplateRouter_Match_BasePath 171.94 ns 182.39 ns +6.1%
JSON_Equality_Helm_Chart_Lock 182.11 ns 192.21 ns +5.5%
JSON_Parse_Decimal 9.62 us 8.93 us -7.2%
JSON_Object_Defines_Miss_Too_Large 3.52 ns 3.17 ns -10.0%
JSON_Object_Defines_Miss_Too_Small 3.52 ns 3.16 ns -10.0%
JSON_Object_Defines_Miss_Same_Length 3.52 ns 3.16 ns -10.0%
JSONPath_Descendant_Filter_Nested 2.08 us 1.73 us -16.7%
JSON_Object_At_Last_Key_8 6.68 ns 4.19 ns -37.3%
JSON_Object_At_Last_Key_32 23.56 ns 13.38 ns -43.2%
JSON_Object_At_Last_Key_512 379.21 ns 206.47 ns -45.6%
JSON_Object_At_Last_Key_128 91.02 ns 47.17 ns -48.2%
All 103 benchmarks
Benchmark main This branch Change
Crypto_CRC32_Large_JSONL 114.44 us 114.47 us +0.0%
JOSE_VerifySignature_RS256 24.49 us 24.56 us +0.3%
JOSE_VerifySignature_ES512 648.22 us 648.38 us +0.0%
GZIP_Compress_ISO_Language_Set_3_Locations 31.87 ms 31.94 ms +0.2%
GZIP_Decompress_ISO_Language_Set_3_Locations 5.55 ms 5.55 ms +0.0%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 7.46 ms 7.46 ms -0.1%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 8.96 ms 8.97 ms +0.1%
GZIP_Compress_ISO_Language_Set_3_Schema 2.31 ms 2.29 ms -0.6%
GZIP_Decompress_ISO_Language_Set_3_Schema 344.67 us 400.16 us +16.1%
Markdown_To_HTML_Realistic_Document 5.04 ms 5.17 ms +2.6%
Markdown_To_HTML_Pathological 14.21 ms 14.43 ms +1.6%
Markdown_To_HTML_Short_Descriptions 598.79 ns 616.36 ns +2.9%
HTML_Build_Table_100000 36.75 ms 35.84 ms -2.5%
HTML_Render_Table_100000 1.91 ms 1.87 ms -1.9%
JSONLD_Catalog_Annotation_List_Populate 720.48 us 750.92 us +4.2%
JSONLD_Catalog_Materialize 3.59 ms 3.62 ms +0.6%
JSONL_Parse_Large 9.51 ms 9.54 ms +0.3%
JSONL_Parse_Large_GZIP 9.74 ms 9.73 ms -0.1%
URITemplateRouter_Create 21.27 us 21.18 us -0.4%
URITemplateRouter_Match 153.37 ns 157.10 ns +2.4%
URITemplateRouterView_Restore 9.69 us 9.62 us -0.7%
URITemplateRouterView_Match 124.25 ns 125.29 ns +0.8%
URITemplateRouterView_Arguments 461.59 ns 464.84 ns +0.7%
URITemplateRouter_Match_BasePath 171.94 ns 182.39 ns +6.1%
URITemplateRouterView_Match_BasePath 144.51 ns 144.19 ns -0.2%
JSONPath_Descendant_Filter_Nested 2.08 us 1.73 us -16.7%
OpenAPI_Format_Synthetic_3_1 45.38 ms 45.78 ms +0.9%
Schema_Frame_WoT_References 2.43 ms 2.45 ms +0.7%
Schema_Frame_OMC_References 10.84 ms 10.70 ms -1.3%
Schema_Frame_OMC_Pointers 20.16 ms 19.92 ms -1.2%
Schema_Frame_OMC_Locations 9.42 ms 9.26 ms -1.7%
Schema_Frame_ISO_Language_Locations 40.80 ms 40.88 ms +0.2%
Schema_Frame_ISO_Language_Root 295.01 ns 290.32 ns -1.6%
Schema_Frame_KrakenD_References 16.64 ms 16.65 ms +0.1%
Schema_Frame_KrakenD_Reachable 138.53 ms 136.80 ms -1.2%
Schema_Frame_ISO_Language_Locations_To_JSON 32.01 ms 32.96 ms +2.9%
Schema_Frame_Many_Resources_References 150.45 ms 151.98 ms +1.0%
Schema_Frame_Deeply_Nested_References 11.06 ms 11.20 ms +1.3%
Schema_Format_ISO_Language 45.49 ms 46.37 ms +1.9%
Schema_Bundle_Meta_2020_12 626.04 us 620.34 us -0.9%
Schema_Bundle_Many_Remotes_With_Fragments 7.37 ms 7.32 ms -0.7%
Pointer_Object_Traverse 24.37 ns 26.03 ns +6.8%
Pointer_Object_Try_Traverse 26.41 ns 26.56 ns +0.6%
Pointer_Push_Back_Pointer_To_Weak_Pointer 138.14 ns 133.50 ns -3.4%
Pointer_Walker_Schema_ISO_Language 1.36 ms 1.38 ms +1.1%
Pointer_Untracked_Deeply_Nested 1.27 ms 1.27 ms +0.5%
Pointer_Tracked_Deeply_Nested 1.75 ms 1.74 ms -0.7%
Pointer_Position_Tracker_Get_Deeply_Nested 674.41 ns 675.03 ns +0.1%
Schema_Tracker_ISO_Language 4.88 ms 4.90 ms +0.5%
Schema_Tracker_ISO_Language_To_JSON 15.06 ms 15.15 ms +0.6%
JSON_Array_Of_Objects_Unique 474.77 ns 480.41 ns +1.2%
JSON_Parse_1 5.23 us 5.27 us +0.7%
JSON_Parse_Real 5.60 us 5.51 us -1.6%
JSON_Parse_Decimal 9.62 us 8.93 us -7.2%
JSON_Parse_Schema_ISO_Language 3.66 ms 3.67 ms +0.4%
JSON_Parse_Integer 3.81 us 3.77 us -1.0%
JSON_Parse_String_NonSSO_Plain 3.93 us 3.92 us -0.1%
JSON_Parse_String_SSO_Plain 2.97 us 3.15 us +6.2%
JSON_Parse_String_Escape_Heavy 15.54 us 16.57 us +6.7%
JSON_Parse_Object_Short_Keys 8.93 us 8.89 us -0.4%
JSON_Parse_Object_Scalar_Properties 4.52 us 4.51 us -0.2%
JSON_Parse_Object_Array_Properties 7.02 us 8.58 us +22.1%
JSON_Parse_Object_Object_Properties 7.01 us 8.39 us +19.7%
JSON_Parse_Nested_Containers 40.98 us 46.49 us +13.4%
JSON_Fast_Hash_Helm_Chart_Lock 87.53 ns 90.61 ns +3.5%
JSON_Equality_Helm_Chart_Lock 182.11 ns 192.21 ns +5.5%
JSON_String_Equal_10 6.83 ns 6.53 ns -4.3%
JSON_String_Equal_100 6.46 ns 7.16 ns +10.8%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.71 ns 0.72 ns +0.8%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 11.49 ns 14.13 ns +23.0%
JSON_String_Fast_Hash_10 3.13 ns 3.13 ns +0.0%
JSON_String_Fast_Hash_100 3.16 ns 3.15 ns -0.2%
JSON_String_Key_Hash_10 2.46 ns 2.46 ns +0.0%
JSON_String_Key_Hash_100 15.81 ns 15.81 ns +0.0%
JSON_Object_Defines_Miss_Same_Length 3.52 ns 3.16 ns -10.0%
JSON_Object_Defines_Miss_Too_Small 3.52 ns 3.16 ns -10.0%
JSON_Object_Defines_Miss_Too_Large 3.52 ns 3.17 ns -10.0%
JSON_From_String_Copy 9.25 ns 9.22 ns -0.3%
JSON_From_String_Temporary 8.63 ns 8.51 ns -1.4%
JSON_Number_To_Double 19.36 ns 19.36 ns -0.0%
JSON_Object_At_Last_Key_8 6.68 ns 4.19 ns -37.3%
JSON_Object_At_Last_Key_32 23.56 ns 13.38 ns -43.2%
JSON_Object_At_Last_Key_128 91.02 ns 47.17 ns -48.2%
JSON_Object_At_Last_Key_512 379.21 ns 206.47 ns -45.6%
JSON_Divisible_By_Decimal 266.30 ns 259.36 ns -2.6%
JSON_PropertySet_Contains 49.24 ns 47.12 ns -4.3%
JSON_PropertySet_Filter_Object_Properties 41.41 ns 42.20 ns +1.9%
JSON_PropertySet_Insert 474.77 ns 463.64 ns -2.3%
Regex_Lower_S_Or_Upper_S_Asterisk 2.37 ns 2.37 ns -0.0%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.29 ns 2.37 ns +3.8%
Regex_Period_Asterisk 2.29 ns 2.37 ns +3.8%
Regex_Group_Period_Asterisk_Group 2.29 ns 2.29 ns -0.0%
Regex_Period_Plus 2.37 ns 2.37 ns +0.0%
Regex_Period 2.29 ns 2.37 ns +3.8%
Regex_Caret_Period_Plus_Dollar 2.28 ns 2.37 ns +3.9%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.28 ns 2.29 ns +0.1%
Regex_Caret_Period_Asterisk_Dollar 2.37 ns 2.37 ns -0.1%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.28 ns 2.37 ns +3.9%
Regex_Caret_X_Hyphen 6.54 ns 6.68 ns +2.2%
Regex_Period_Md_Dollar 34.57 ns 33.46 ns -3.2%
Regex_Caret_Slash_Period_Asterisk 7.64 ns 7.37 ns -3.6%
Regex_Caret_Period_Range_Dollar 3.34 ns 4.14 ns +24.0%
Regex_Nested_Backtrack 41.82 ns 41.30 ns -1.2%

@github-actions

Copy link
Copy Markdown

Benchmark macos/llvm

Measured against main at 22e6e95.

22 slower, 11 faster, 70 within 5%.

Benchmark main This branch Change
Schema_Frame_Deeply_Nested_References 11.48 ms 13.52 ms +17.8%
JSONL_Parse_Large 5.45 ms 6.35 ms +16.4%
JSON_From_String_Copy 13.52 ns 15.68 ns +16.0%
Schema_Frame_WoT_References 1.91 ms 2.19 ms +14.7%
Regex_Lower_S_Or_Upper_S_Asterisk 1.59 ns 1.82 ns +14.6%
Markdown_To_HTML_Realistic_Document 2.81 ms 3.18 ms +13.3%
Regex_Caret_Slash_Period_Asterisk 4.39 ns 4.82 ns +9.8%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.62 ns 1.77 ns +8.9%
URITemplateRouterView_Match_BasePath 140.61 ns 152.86 ns +8.7%
Schema_Frame_ISO_Language_Locations_To_JSON 20.00 ms 21.70 ms +8.5%
Schema_Frame_KrakenD_Reachable 158.20 ms 170.45 ms +7.7%
Schema_Bundle_Meta_2020_12 474.56 us 509.73 us +7.4%
JOSE_VerifySignature_ES512 783.88 us 840.44 us +7.2%
JSON_Parse_String_Escape_Heavy 14.71 us 15.66 us +6.5%
JSON_Object_At_Last_Key_512 176.81 ns 187.86 ns +6.2%
Schema_Format_ISO_Language 21.17 ms 22.44 ms +6.0%
Schema_Bundle_Many_Remotes_With_Fragments 5.60 ms 5.93 ms +5.9%
JSON_Parse_Schema_ISO_Language 2.00 ms 2.12 ms +5.9%
HTML_Render_Table_100000 903.19 us 956.38 us +5.9%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 4.30 ms 4.54 ms +5.6%
URITemplateRouterView_Match 125.75 ns 132.69 ns +5.5%
JSON_String_Equal_100 6.03 ns 6.35 ns +5.2%
URITemplateRouterView_Restore 9.79 us 9.24 us -5.6%
Regex_Caret_Period_Asterisk_Dollar 1.65 ns 1.55 ns -5.7%
Markdown_To_HTML_Short_Descriptions 333.91 ns 314.75 ns -5.7%
JSON_Parse_Object_Short_Keys 5.40 us 5.09 us -5.8%
Regex_Caret_Period_Range_Dollar 1.84 ns 1.73 ns -5.9%
JSON_PropertySet_Filter_Object_Properties 37.01 ns 34.73 ns -6.2%
JSON_Array_Of_Objects_Unique 336.84 ns 314.65 ns -6.6%
Schema_Frame_OMC_Pointers 17.93 ms 16.50 ms -8.0%
Schema_Tracker_ISO_Language 2.62 ms 2.35 ms -10.6%
JSON_Parse_String_NonSSO_Plain 2.96 us 2.57 us -13.0%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.15 ns 1.85 ns -13.6%
All 103 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 1.59 ns 1.82 ns +14.6%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.62 ns 1.77 ns +8.9%
Regex_Period_Asterisk 1.67 ns 1.69 ns +1.4%
Regex_Group_Period_Asterisk_Group 1.72 ns 1.73 ns +0.8%
Regex_Period_Plus 1.99 ns 2.08 ns +4.5%
Regex_Period 2.03 ns 1.99 ns -2.1%
Regex_Caret_Period_Plus_Dollar 1.84 ns 1.78 ns -3.7%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.15 ns 1.85 ns -13.6%
Regex_Caret_Period_Asterisk_Dollar 1.65 ns 1.55 ns -5.7%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.56 ns 1.51 ns -3.7%
Regex_Caret_X_Hyphen 5.49 ns 5.54 ns +1.0%
Regex_Period_Md_Dollar 15.40 ns 16.14 ns +4.8%
Regex_Caret_Slash_Period_Asterisk 4.39 ns 4.82 ns +9.8%
Regex_Caret_Period_Range_Dollar 1.84 ns 1.73 ns -5.9%
Regex_Nested_Backtrack 26.01 ns 26.55 ns +2.1%
JSON_Array_Of_Objects_Unique 336.84 ns 314.65 ns -6.6%
JSON_Parse_1 2.91 us 2.78 us -4.7%
JSON_Parse_Real 4.91 us 4.79 us -2.4%
JSON_Parse_Decimal 5.27 us 5.29 us +0.3%
JSON_Parse_Schema_ISO_Language 2.00 ms 2.12 ms +5.9%
JSON_Parse_Integer 2.97 us 2.88 us -3.1%
JSON_Parse_String_NonSSO_Plain 2.96 us 2.57 us -13.0%
JSON_Parse_String_SSO_Plain 1.61 us 1.55 us -3.5%
JSON_Parse_String_Escape_Heavy 14.71 us 15.66 us +6.5%
JSON_Parse_Object_Short_Keys 5.40 us 5.09 us -5.8%
JSON_Parse_Object_Scalar_Properties 2.66 us 2.58 us -3.3%
JSON_Parse_Object_Array_Properties 3.07 us 3.16 us +2.7%
JSON_Parse_Object_Object_Properties 3.03 us 3.04 us +0.4%
JSON_Parse_Nested_Containers 21.98 us 22.35 us +1.7%
JSON_Fast_Hash_Helm_Chart_Lock 58.81 ns 55.89 ns -5.0%
JSON_Equality_Helm_Chart_Lock 142.74 ns 137.61 ns -3.6%
JSON_String_Equal_10 6.27 ns 6.27 ns -0.0%
JSON_String_Equal_100 6.03 ns 6.35 ns +5.2%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.31 ns 0.32 ns +2.9%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 2.84 ns 2.76 ns -2.7%
JSON_String_Fast_Hash_10 2.30 ns 2.29 ns -0.5%
JSON_String_Fast_Hash_100 1.86 ns 1.90 ns +2.3%
JSON_String_Key_Hash_10 1.53 ns 1.52 ns -0.7%
JSON_String_Key_Hash_100 1.87 ns 1.91 ns +2.4%
JSON_Object_Defines_Miss_Same_Length 2.49 ns 2.54 ns +2.2%
JSON_Object_Defines_Miss_Too_Small 2.57 ns 2.66 ns +3.6%
JSON_Object_Defines_Miss_Too_Large 2.61 ns 2.61 ns -0.1%
JSON_From_String_Copy 13.52 ns 15.68 ns +16.0%
JSON_From_String_Temporary 4.89 ns 5.00 ns +2.1%
JSON_Number_To_Double 32.76 ns 31.49 ns -3.9%
JSON_Object_At_Last_Key_8 3.77 ns 3.78 ns +0.1%
JSON_Object_At_Last_Key_32 11.84 ns 11.40 ns -3.7%
JSON_Object_At_Last_Key_128 51.98 ns 52.11 ns +0.3%
JSON_Object_At_Last_Key_512 176.81 ns 187.86 ns +6.2%
JSON_Divisible_By_Decimal 172.22 ns 180.57 ns +4.8%
JSON_PropertySet_Contains 40.60 ns 41.63 ns +2.5%
JSON_PropertySet_Filter_Object_Properties 37.01 ns 34.73 ns -6.2%
JSON_PropertySet_Insert 289.79 ns 288.38 ns -0.5%
Pointer_Object_Traverse 18.09 ns 18.38 ns +1.6%
Pointer_Object_Try_Traverse 32.58 ns 32.94 ns +1.1%
Pointer_Push_Back_Pointer_To_Weak_Pointer 130.47 ns 132.39 ns +1.5%
Pointer_Walker_Schema_ISO_Language 1.09 ms 1.08 ms -0.9%
Pointer_Untracked_Deeply_Nested 775.38 us 769.45 us -0.8%
Pointer_Tracked_Deeply_Nested 1.00 ms 1.02 ms +1.8%
Pointer_Position_Tracker_Get_Deeply_Nested 298.18 ns 310.14 ns +4.0%
Schema_Tracker_ISO_Language 2.62 ms 2.35 ms -10.6%
Schema_Tracker_ISO_Language_To_JSON 11.82 ms 11.79 ms -0.3%
Schema_Frame_WoT_References 1.91 ms 2.19 ms +14.7%
Schema_Frame_OMC_References 8.87 ms 8.74 ms -1.5%
Schema_Frame_OMC_Pointers 17.93 ms 16.50 ms -8.0%
Schema_Frame_OMC_Locations 7.74 ms 7.79 ms +0.6%
Schema_Frame_ISO_Language_Locations 20.83 ms 20.86 ms +0.1%
Schema_Frame_ISO_Language_Root 99.88 ns 98.25 ns -1.6%
Schema_Frame_KrakenD_References 13.98 ms 14.37 ms +2.8%
Schema_Frame_KrakenD_Reachable 158.20 ms 170.45 ms +7.7%
Schema_Frame_ISO_Language_Locations_To_JSON 20.00 ms 21.70 ms +8.5%
Schema_Frame_Many_Resources_References 107.35 ms 104.10 ms -3.0%
Schema_Frame_Deeply_Nested_References 11.48 ms 13.52 ms +17.8%
Schema_Format_ISO_Language 21.17 ms 22.44 ms +6.0%
Schema_Bundle_Meta_2020_12 474.56 us 509.73 us +7.4%
Schema_Bundle_Many_Remotes_With_Fragments 5.60 ms 5.93 ms +5.9%
OpenAPI_Format_Synthetic_3_1 39.25 ms 40.45 ms +3.1%
JSONPath_Descendant_Filter_Nested 1.17 us 1.12 us -4.8%
URITemplateRouter_Create 17.64 us 18.44 us +4.5%
URITemplateRouter_Match 176.16 ns 169.28 ns -3.9%
URITemplateRouterView_Restore 9.79 us 9.24 us -5.6%
URITemplateRouterView_Match 125.75 ns 132.69 ns +5.5%
URITemplateRouterView_Arguments 519.45 ns 542.76 ns +4.5%
URITemplateRouter_Match_BasePath 181.05 ns 184.87 ns +2.1%
URITemplateRouterView_Match_BasePath 140.61 ns 152.86 ns +8.7%
JSONL_Parse_Large 5.45 ms 6.35 ms +16.4%
JSONL_Parse_Large_GZIP 5.77 ms 5.86 ms +1.6%
JSONLD_Catalog_Annotation_List_Populate 456.77 us 442.20 us -3.2%
JSONLD_Catalog_Materialize 2.10 ms 2.08 ms -1.2%
HTML_Build_Table_100000 24.84 ms 24.32 ms -2.1%
HTML_Render_Table_100000 903.19 us 956.38 us +5.9%
Markdown_To_HTML_Realistic_Document 2.81 ms 3.18 ms +13.3%
Markdown_To_HTML_Pathological 9.03 ms 8.95 ms -0.8%
Markdown_To_HTML_Short_Descriptions 333.91 ns 314.75 ns -5.7%
GZIP_Compress_ISO_Language_Set_3_Locations 27.10 ms 25.79 ms -4.8%
GZIP_Decompress_ISO_Language_Set_3_Locations 2.59 ms 2.70 ms +4.4%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 4.30 ms 4.54 ms +5.6%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 5.25 ms 5.44 ms +3.7%
GZIP_Compress_ISO_Language_Set_3_Schema 1.65 ms 1.70 ms +2.7%
GZIP_Decompress_ISO_Language_Set_3_Schema 288.65 us 279.72 us -3.1%
JOSE_VerifySignature_RS256 21.19 us 21.37 us +0.9%
JOSE_VerifySignature_ES512 783.88 us 840.44 us +7.2%
Crypto_CRC32_Large_JSONL 20.36 us 20.14 us -1.1%

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant