Skip to content

Introduce a vocabulary for the OpenAPI v3.0 Schema Object dialect - #2931

Merged
jviotti merged 3 commits into
mainfrom
openapi-3-0-vocabs
Oct 4, 2026
Merged

jviotti merged 3 commits into
mainfrom
openapi-3-0-vocabs

Conversation

@jviotti

@jviotti jviotti commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti [email protected]

Review in cubic

@augmentcode

augmentcode Bot commented Oct 4, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Introduces OPENAPI_3_0_BASE for the OpenAPI 3.0 Schema Object dialect, distinct from Draft 4.
Appends enum value 32 without renumbering existing vocabularies.
Increases vocabulary capacity to 33 and adds a bitset-size assertion.
Registers tag:spec.openapis.org,2017:oas/3.0/vocab/base for URI conversion.
Maps both dated OpenAPI 3.0 dialect identifiers to the new vocabulary.
Adds formatting, dialect-override, and meta-schema vocabulary tests.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestion posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

// superset of Draft 4, so it stands on its own rather than extending it
if (dialect == "tag:spec.openapis.org,2024-10-18:oas/3.0/dialect" ||
dialect == "tag:spec.openapis.org,2021-09-28:oas/3.0/dialect") {
return SchemaVocabularies::Known::OPENAPI_3_0_BASE;

@augmentcode augmentcode Bot Oct 4, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At src/core/jsonschema/jsonschema.cc:513, returning only OPENAPI_3_0_BASE makes every keyword Unknown because schema_walker() has no variants for this vocabulary (src/core/jsonschema/known_walker.cc:5086–5114). Could you check this regression: a SchemaFrame in Mode::References for {"properties":{"child":{"$ref":"https://example.com/child"}}} with either OpenAPI 3.0 dialect now skips /properties/child and its external reference, incorrectly reporting standalone() == true?

Severity: high

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 4 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/vocabularies.cc">

<violation number="1" location="src/core/jsonschema/vocabularies.cc:76">
P2: This gives a Sourcemeta-invented vocabulary an identifier under OpenAPI’s `spec.openapis.org` tag authority. Use a Sourcemeta-owned tag URI and update its references to avoid claiming or colliding with OAI’s namespace.</violation>
</file>

<file name="src/core/jsonschema/jsonschema.cc">

<violation number="1" location="src/core/jsonschema/jsonschema.cc:513">
P1: Add `OPENAPI_3_0_BASE` handling to `schema_walker()` for OpenAPI 3.0 schema keywords; otherwise `properties` is treated as unknown and nested external references are skipped.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

// superset of Draft 4, so it stands on its own rather than extending it
if (dialect == "tag:spec.openapis.org,2024-10-18:oas/3.0/dialect" ||
dialect == "tag:spec.openapis.org,2021-09-28:oas/3.0/dialect") {
return SchemaVocabularies::Known::OPENAPI_3_0_BASE;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Add OPENAPI_3_0_BASE handling to schema_walker() for OpenAPI 3.0 schema keywords; otherwise properties is treated as unknown and nested external references are skipped.

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/jsonschema.cc, line 513:

<comment>Add `OPENAPI_3_0_BASE` handling to `schema_walker()` for OpenAPI 3.0 schema keywords; otherwise `properties` is treated as unknown and nested external references are skipped.</comment>

<file context>
@@ -503,6 +503,16 @@ auto pre_vocabulary_dialect_to_known(const std::string_view dialect)
+  // superset of Draft 4, so it stands on its own rather than extending it
+  if (dialect == "tag:spec.openapis.org,2024-10-18:oas/3.0/dialect" ||
+      dialect == "tag:spec.openapis.org,2021-09-28:oas/3.0/dialect") {
+    return SchemaVocabularies::Known::OPENAPI_3_0_BASE;
+  }
+
</file context>

/* Every published release of the v3.0 document schema carries the same \
Schema Object definition, so one vocabulary serves them all, and its \
date is that of the specification rather than of any one release */ \
X(OPENAPI_3_0_BASE, "tag:spec.openapis.org,2017:oas/3.0/vocab/base") \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This gives a Sourcemeta-invented vocabulary an identifier under OpenAPI’s spec.openapis.org tag authority. Use a Sourcemeta-owned tag URI and update its references to avoid claiming or colliding with OAI’s namespace.

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/vocabularies.cc, line 76:

<comment>This gives a Sourcemeta-invented vocabulary an identifier under OpenAPI’s `spec.openapis.org` tag authority. Use a Sourcemeta-owned tag URI and update its references to avoid claiming or colliding with OAI’s namespace.</comment>

<file context>
@@ -70,6 +70,10 @@
+  /* Every published release of the v3.0 document schema carries the same      \
+     Schema Object definition, so one vocabulary serves them all, and its      \
+     date is that of the specification rather than of any one release */       \
+  X(OPENAPI_3_0_BASE, "tag:spec.openapis.org,2017:oas/3.0/vocab/base")         \
   /* Sourcemeta vocabularies */                                                \
   X(SOURCEMETA_EXTENSION_V1, "tag:sourcemeta.com,2026:extension/v1")
</file context>

Comment thread src/core/jsonschema/include/sourcemeta/core/jsonschema_vocabularies.h Outdated
@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark linux/llvm

Measured against main at f9db67f.

5 slower, 4 faster, 101 within 5%.

Benchmark main This branch Change
JSON_Array_Of_Strings_Unique_Colliding_256 216.15 us 256.67 us +18.7%
Regex_Caret_Slash_Period_Asterisk 6.85 ns 7.78 ns +13.6%
JSON_Parse_String_Escape_Heavy 12.29 us 13.92 us +13.2%
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.99 ns 184.00 ns +9.5%
JSONLD_Catalog_Materialize 3.84 ms 4.04 ms +5.4%
JSON_Parse_Integer 3.89 us 3.68 us -5.3%
URITemplateRouter_Match_BasePath 205.76 ns 194.51 ns -5.5%
Pointer_Walker_Schema_ISO_Language 1.69 ms 1.59 ms -5.8%
JSON_Array_Of_Objects_Unique 449.75 ns 422.29 ns -6.1%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 2.80 ns 2.80 ns -0.1%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.80 ns 2.80 ns -0.1%
Regex_Period_Asterisk 2.49 ns 2.49 ns +0.1%
Regex_Group_Period_Asterisk_Group 2.49 ns 2.49 ns +0.1%
Regex_Period_Plus 3.43 ns 3.43 ns -0.1%
Regex_Period 3.43 ns 3.42 ns -0.2%
Regex_Caret_Period_Plus_Dollar 3.11 ns 3.11 ns +0.1%
Regex_Caret_Group_Period_Plus_Group_Dollar 3.11 ns 3.11 ns -0.0%
Regex_Caret_Period_Asterisk_Dollar 4.04 ns 4.05 ns +0.1%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.04 ns 4.05 ns +0.1%
Regex_Caret_X_Hyphen 7.16 ns 7.16 ns +0.0%
Regex_Period_Md_Dollar 27.19 ns 27.15 ns -0.1%
Regex_Caret_Slash_Period_Asterisk 6.85 ns 7.78 ns +13.6%
Regex_Caret_Period_Range_Dollar 4.67 ns 4.66 ns -0.1%
Regex_Nested_Backtrack 39.15 ns 39.21 ns +0.1%
JSON_Array_Of_Objects_Unique 449.75 ns 422.29 ns -6.1%
JSON_Array_Of_Integers_Unique_256 5.12 us 4.93 us -3.7%
JSON_Array_Of_Strings_Unique_Colliding_256 216.15 us 256.67 us +18.7%
JSON_Parse_1 4.65 us 4.52 us -2.7%
JSON_Parse_Real 4.78 us 4.71 us -1.5%
JSON_Parse_Decimal 7.50 us 7.37 us -1.7%
JSON_Parse_Schema_ISO_Language 3.36 ms 3.34 ms -0.7%
JSON_Parse_Integer 3.89 us 3.68 us -5.3%
JSON_Parse_String_NonSSO_Plain 3.21 us 3.16 us -1.5%
JSON_Parse_String_SSO_Plain 2.81 us 2.74 us -2.6%
JSON_Parse_String_Escape_Heavy 12.29 us 13.92 us +13.2%
JSON_Parse_Object_Short_Keys 7.96 us 7.90 us -0.8%
JSON_Parse_Object_Scalar_Properties 4.07 us 4.03 us -0.9%
JSON_Parse_Object_Array_Properties 5.57 us 5.51 us -1.1%
JSON_Parse_Object_Object_Properties 5.57 us 5.46 us -1.9%
JSON_Parse_Nested_Containers 35.50 us 35.28 us -0.6%
JSON_Fast_Hash_Helm_Chart_Lock 66.01 ns 65.94 ns -0.1%
JSON_Equality_Helm_Chart_Lock 156.57 ns 154.87 ns -1.1%
JSON_String_Equal_10 6.54 ns 6.85 ns +4.7%
JSON_String_Equal_100 7.16 ns 7.47 ns +4.4%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.93 ns 0.93 ns +0.0%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 14.93 ns 14.93 ns -0.0%
JSON_String_Fast_Hash_10 2.80 ns 2.80 ns -0.1%
JSON_String_Fast_Hash_100 2.80 ns 2.80 ns +0.0%
JSON_String_Key_Hash_10 2.57 ns 2.58 ns +0.5%
JSON_String_Key_Hash_100 9.03 ns 9.05 ns +0.3%
JSON_Object_Defines_Miss_Same_Length 3.42 ns 3.42 ns -0.0%
JSON_Object_Defines_Miss_Too_Small 2.97 ns 3.00 ns +0.8%
JSON_Object_Defines_Miss_Too_Large 2.71 ns 2.78 ns +2.6%
JSON_From_String_Copy 11.03 ns 11.29 ns +2.3%
JSON_From_String_Temporary 10.16 ns 10.42 ns +2.5%
JSON_Number_To_Double 14.95 ns 14.97 ns +0.1%
JSON_Object_At_Last_Key_8 3.83 ns 3.82 ns -0.2%
JSON_Object_At_Last_Key_32 12.30 ns 12.31 ns +0.0%
JSON_Object_At_Last_Key_128 87.43 ns 87.44 ns +0.0%
JSON_Object_At_Last_Key_512 391.45 ns 389.32 ns -0.5%
JSON_Divisible_By_Decimal 469.45 ns 473.69 ns +0.9%
JSON_PropertySet_Contains 53.27 ns 53.45 ns +0.3%
JSON_PropertySet_Filter_Object_Properties 39.74 ns 39.97 ns +0.6%
JSON_PropertySet_Insert 561.41 ns 580.91 ns +3.5%
JSON_Stringify_Schema_Web_Of_Things 64.74 us 64.46 us -0.4%
JSON_Prettify_Schema_Web_Of_Things 179.39 us 186.02 us +3.7%
Pointer_Object_Traverse 28.44 ns 28.34 ns -0.4%
Pointer_Object_Try_Traverse 33.62 ns 33.67 ns +0.1%
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.99 ns 184.00 ns +9.5%
Pointer_Walker_Schema_ISO_Language 1.69 ms 1.59 ms -5.8%
Pointer_Untracked_Deeply_Nested 1.23 ms 1.22 ms -0.7%
Pointer_Tracked_Deeply_Nested 1.60 ms 1.58 ms -1.1%
Pointer_Position_Tracker_Get_Deeply_Nested 606.46 ns 636.12 ns +4.9%
Schema_Tracker_ISO_Language 4.55 ms 4.48 ms -1.4%
Schema_Tracker_ISO_Language_To_JSON 16.52 ms 16.81 ms +1.8%
Schema_Frame_WoT_References 2.06 ms 2.05 ms -0.4%
Schema_Frame_OMC_References 9.72 ms 9.89 ms +1.8%
Schema_Frame_OMC_Pointers 18.68 ms 18.42 ms -1.3%
Schema_Frame_OMC_Locations 8.63 ms 8.67 ms +0.4%
Schema_Frame_ISO_Language_Locations 42.08 ms 41.77 ms -0.7%
Schema_Frame_ISO_Language_Root 285.00 ns 281.36 ns -1.3%
Schema_Frame_KrakenD_References 17.66 ms 17.02 ms -3.7%
Schema_Frame_KrakenD_Reachable 158.77 ms 158.24 ms -0.3%
Schema_Frame_ISO_Language_Locations_To_JSON 32.05 ms 32.70 ms +2.0%
Schema_Frame_Many_Resources_References 139.52 ms 138.84 ms -0.5%
Schema_Frame_Deeply_Nested_References 11.84 ms 11.32 ms -4.4%
Schema_Format_ISO_Language 48.17 ms 47.93 ms -0.5%
Schema_Bundle_Meta_2020_12 570.87 us 569.25 us -0.3%
Schema_Bundle_Many_Remotes_With_Fragments 6.65 ms 6.58 ms -1.2%
OpenAPI_Format_Synthetic_3_1 52.83 ms 52.45 ms -0.7%
JSONPath_Descendant_Filter_Nested 1.50 us 1.55 us +3.2%
URITemplateRouter_Create 23.59 us 23.67 us +0.4%
URITemplateRouter_Match 178.33 ns 170.77 ns -4.2%
URITemplateRouterView_Restore 8.60 us 8.53 us -0.8%
URITemplateRouterView_Match 145.85 ns 138.86 ns -4.8%
URITemplateRouterView_Arguments 441.26 ns 439.93 ns -0.3%
URITemplateRouter_Match_BasePath 205.76 ns 194.51 ns -5.5%
URITemplateRouterView_Match_BasePath 168.36 ns 161.37 ns -4.2%
JSONL_Parse_Large 9.02 ms 8.96 ms -0.6%
JSONL_Parse_Large_GZIP 9.17 ms 9.10 ms -0.8%
JSONLD_Catalog_Annotation_List_Populate 600.62 us 595.68 us -0.8%
JSONLD_Catalog_Materialize 3.84 ms 4.04 ms +5.4%
HTML_Build_Table_100000 38.12 ms 38.05 ms -0.2%
HTML_Render_Table_100000 1.95 ms 1.97 ms +1.0%
Markdown_To_HTML_Realistic_Document 4.19 ms 4.15 ms -1.0%
Markdown_To_HTML_Pathological 13.02 ms 13.03 ms +0.1%
Markdown_To_HTML_Short_Descriptions 568.35 ns 567.83 ns -0.1%
GZIP_Compress_ISO_Language_Set_3_Locations 37.54 ms 37.43 ms -0.3%
GZIP_Decompress_ISO_Language_Set_3_Locations 5.18 ms 5.17 ms -0.2%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 7.08 ms 7.10 ms +0.2%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 9.87 ms 9.83 ms -0.4%
GZIP_Compress_ISO_Language_Set_3_Schema 2.24 ms 2.19 ms -2.0%
GZIP_Decompress_ISO_Language_Set_3_Schema 422.26 us 424.98 us +0.6%
JOSE_VerifySignature_RS256 47.08 us 48.49 us +3.0%
JOSE_VerifySignature_ES512 1.79 ms 1.75 ms -1.8%
Crypto_CRC32_Large_JSONL 101.56 us 101.65 us +0.1%
Crypto_AES_GCM_Encrypt_128_1KB 32.51 us 31.36 us -3.6%
Crypto_AES_GCM_Decrypt_128_1KB 32.52 us 31.32 us -3.7%
Crypto_AES_GCM_Encrypt_256_1KB 39.27 us 38.09 us -3.0%

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark windows/msvc

Measured against main at f9db67f.

7 slower, 7 faster, 96 within 5%.

Benchmark main This branch Change
JSON_PropertySet_Insert 794.32 ns 1.08 us +35.4%
JSON_Object_At_Last_Key_32 9.00 ns 10.93 ns +21.5%
Schema_Format_ISO_Language 59.71 ms 64.53 ms +8.1%
JSONLD_Catalog_Materialize 4.61 ms 4.97 ms +7.9%
Schema_Frame_ISO_Language_Locations_To_JSON 114.83 ms 122.76 ms +6.9%
Regex_Caret_Period_Plus_Dollar 2.54 ns 2.68 ns +5.6%
JSON_Object_At_Last_Key_128 48.75 ns 51.47 ns +5.6%
Schema_Frame_KrakenD_References 24.56 ms 23.27 ms -5.3%
JSON_Parse_1 5.56 us 5.20 us -6.5%
JSON_String_Equal_100 5.80 ns 5.39 ns -7.1%
JSON_Parse_Object_Object_Properties 7.55 us 6.89 us -8.7%
Schema_Frame_Deeply_Nested_References 11.98 ms 10.94 ms -8.7%
Schema_Frame_ISO_Language_Locations 61.20 ms 54.34 ms -11.2%
JSON_Parse_Nested_Containers 54.64 us 47.06 us -13.9%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 2.57 ns 2.59 ns +0.8%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.59 ns 2.65 ns +2.2%
Regex_Period_Asterisk 2.57 ns 2.61 ns +1.7%
Regex_Group_Period_Asterisk_Group 2.58 ns 2.57 ns -0.4%
Regex_Period_Plus 2.59 ns 2.61 ns +0.7%
Regex_Period 2.58 ns 2.62 ns +1.4%
Regex_Caret_Period_Plus_Dollar 2.54 ns 2.68 ns +5.6%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.49 ns 2.61 ns +4.7%
Regex_Caret_Period_Asterisk_Dollar 2.57 ns 2.59 ns +0.6%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.61 ns 2.59 ns -0.9%
Regex_Caret_X_Hyphen 4.23 ns 4.24 ns +0.2%
Regex_Period_Md_Dollar 22.10 ns 22.14 ns +0.2%
Regex_Caret_Slash_Period_Asterisk 4.15 ns 4.26 ns +2.6%
Regex_Caret_Period_Range_Dollar 2.76 ns 2.82 ns +2.0%
Regex_Nested_Backtrack 27.98 ns 28.01 ns +0.1%
JSON_Array_Of_Objects_Unique 298.62 ns 299.29 ns +0.2%
JSON_Array_Of_Integers_Unique_256 2.32 us 2.28 us -1.6%
JSON_Array_Of_Strings_Unique_Colliding_256 136.56 us 132.59 us -2.9%
JSON_Parse_1 5.56 us 5.20 us -6.5%
JSON_Parse_Real 6.16 us 6.14 us -0.3%
JSON_Parse_Decimal 6.83 us 6.62 us -3.0%
JSON_Parse_Schema_ISO_Language 5.40 ms 5.14 ms -4.8%
JSON_Parse_Integer 3.89 us 3.82 us -1.9%
JSON_Parse_String_NonSSO_Plain 5.32 us 5.26 us -1.1%
JSON_Parse_String_SSO_Plain 2.56 us 2.52 us -1.9%
JSON_Parse_String_Escape_Heavy 13.00 us 12.66 us -2.6%
JSON_Parse_Object_Short_Keys 8.09 us 8.04 us -0.6%
JSON_Parse_Object_Scalar_Properties 4.36 us 4.32 us -0.9%
JSON_Parse_Object_Array_Properties 7.02 us 6.74 us -4.0%
JSON_Parse_Object_Object_Properties 7.55 us 6.89 us -8.7%
JSON_Parse_Nested_Containers 54.64 us 47.06 us -13.9%
JSON_Fast_Hash_Helm_Chart_Lock 59.49 ns 58.78 ns -1.2%
JSON_Equality_Helm_Chart_Lock 104.94 ns 104.07 ns -0.8%
JSON_String_Equal_10 5.30 ns 5.17 ns -2.4%
JSON_String_Equal_100 5.80 ns 5.39 ns -7.1%
JSON_String_Equal_Small_By_Perfect_Hash_10 1.20 ns 1.17 ns -2.1%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 7.61 ns 7.73 ns +1.6%
JSON_String_Fast_Hash_10 3.54 ns 3.49 ns -1.5%
JSON_String_Fast_Hash_100 3.47 ns 3.40 ns -2.1%
JSON_String_Key_Hash_10 2.59 ns 2.49 ns -4.0%
JSON_String_Key_Hash_100 5.86 ns 5.79 ns -1.2%
JSON_Object_Defines_Miss_Same_Length 1.84 ns 1.84 ns +0.1%
JSON_Object_Defines_Miss_Too_Small 2.17 ns 2.06 ns -4.9%
JSON_Object_Defines_Miss_Too_Large 2.03 ns 2.08 ns +2.4%
JSON_From_String_Copy 39.23 ns 38.31 ns -2.3%
JSON_From_String_Temporary 43.50 ns 42.07 ns -3.3%
JSON_Number_To_Double 25.12 ns 25.16 ns +0.2%
JSON_Object_At_Last_Key_8 3.42 ns 3.32 ns -2.9%
JSON_Object_At_Last_Key_32 9.00 ns 10.93 ns +21.5%
JSON_Object_At_Last_Key_128 48.75 ns 51.47 ns +5.6%
JSON_Object_At_Last_Key_512 151.36 ns 153.44 ns +1.4%
JSON_Divisible_By_Decimal 318.58 ns 321.77 ns +1.0%
JSON_PropertySet_Contains 38.48 ns 37.89 ns -1.5%
JSON_PropertySet_Filter_Object_Properties 24.81 ns 24.60 ns -0.9%
JSON_PropertySet_Insert 794.32 ns 1.08 us +35.4%
JSON_Stringify_Schema_Web_Of_Things 122.65 us 123.59 us +0.8%
JSON_Prettify_Schema_Web_Of_Things 388.45 us 388.53 us +0.0%
Pointer_Object_Traverse 31.33 ns 32.21 ns +2.8%
Pointer_Object_Try_Traverse 32.02 ns 33.34 ns +4.1%
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.05 ns 177.09 ns +0.6%
Pointer_Walker_Schema_ISO_Language 8.49 ms 8.75 ms +3.0%
Pointer_Untracked_Deeply_Nested 1.47 ms 1.54 ms +4.6%
Pointer_Tracked_Deeply_Nested 2.24 ms 2.32 ms +3.3%
Pointer_Position_Tracker_Get_Deeply_Nested 406.79 ns 408.88 ns +0.5%
Schema_Tracker_ISO_Language 6.62 ms 6.82 ms +3.0%
Schema_Tracker_ISO_Language_To_JSON 45.46 ms 46.25 ms +1.7%
Schema_Frame_WoT_References 3.25 ms 3.32 ms +2.4%
Schema_Frame_OMC_References 13.43 ms 13.52 ms +0.7%
Schema_Frame_OMC_Pointers 25.70 ms 25.33 ms -1.4%
Schema_Frame_OMC_Locations 11.89 ms 11.52 ms -3.1%
Schema_Frame_ISO_Language_Locations 61.20 ms 54.34 ms -11.2%
Schema_Frame_ISO_Language_Root 1.36 us 1.38 us +1.0%
Schema_Frame_KrakenD_References 24.56 ms 23.27 ms -5.3%
Schema_Frame_KrakenD_Reachable 161.45 ms 161.72 ms +0.2%
Schema_Frame_ISO_Language_Locations_To_JSON 114.83 ms 122.76 ms +6.9%
Schema_Frame_Many_Resources_References 365.07 ms 377.08 ms +3.3%
Schema_Frame_Deeply_Nested_References 11.98 ms 10.94 ms -8.7%
Schema_Format_ISO_Language 59.71 ms 64.53 ms +8.1%
Schema_Bundle_Meta_2020_12 821.93 us 843.92 us +2.7%
Schema_Bundle_Many_Remotes_With_Fragments 16.03 ms 16.07 ms +0.3%
OpenAPI_Format_Synthetic_3_1 69.34 ms 70.77 ms +2.1%
JSONPath_Descendant_Filter_Nested 1.43 us 1.44 us +0.9%
URITemplateRouter_Create 22.96 us 22.06 us -3.9%
URITemplateRouter_Match 116.34 ns 119.01 ns +2.3%
URITemplateRouterView_Restore 14.98 us 15.16 us +1.2%
URITemplateRouterView_Match 100.42 ns 105.02 ns +4.6%
URITemplateRouterView_Arguments 345.25 ns 342.85 ns -0.7%
URITemplateRouter_Match_BasePath 127.04 ns 129.60 ns +2.0%
URITemplateRouterView_Match_BasePath 116.34 ns 118.10 ns +1.5%
JSONL_Parse_Large 20.94 ms 20.47 ms -2.2%
JSONL_Parse_Large_GZIP 20.27 ms 20.10 ms -0.8%
JSONLD_Catalog_Annotation_List_Populate 1.91 ms 1.90 ms -0.6%
JSONLD_Catalog_Materialize 4.61 ms 4.97 ms +7.9%
HTML_Build_Table_100000 41.34 ms 42.53 ms +2.9%
HTML_Render_Table_100000 6.03 ms 5.89 ms -2.3%
Markdown_To_HTML_Realistic_Document 2.97 ms 3.04 ms +2.4%
Markdown_To_HTML_Pathological 10.00 ms 9.64 ms -3.6%
Markdown_To_HTML_Short_Descriptions 408.32 ns 402.34 ns -1.5%
GZIP_Compress_ISO_Language_Set_3_Locations 21.93 ms 22.51 ms +2.7%
GZIP_Decompress_ISO_Language_Set_3_Locations 7.18 ms 7.39 ms +2.9%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 8.79 ms 8.56 ms -2.6%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 8.75 ms 8.43 ms -3.7%
GZIP_Compress_ISO_Language_Set_3_Schema 1.55 ms 1.57 ms +1.4%
GZIP_Decompress_ISO_Language_Set_3_Schema 442.95 us 449.26 us +1.4%
JOSE_VerifySignature_RS256 12.28 us 12.32 us +0.3%
JOSE_VerifySignature_ES512 844.04 us 829.37 us -1.7%
Crypto_CRC32_Large_JSONL 77.20 us 76.35 us -1.1%
Crypto_AES_GCM_Encrypt_128_1KB 1.27 us 1.28 us +0.5%
Crypto_AES_GCM_Decrypt_128_1KB 1.28 us 1.28 us -0.6%
Crypto_AES_GCM_Encrypt_256_1KB 1.32 us 1.31 us -0.4%

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark linux/gcc

Measured against main at f9db67f.

8 slower, 5 faster, 97 within 5%.

Benchmark main This branch Change
JSON_Object_At_Last_Key_32 11.88 ns 22.58 ns +90.1%
JSON_Object_At_Last_Key_128 48.61 ns 87.15 ns +79.3%
JSON_Object_At_Last_Key_8 3.83 ns 5.67 ns +47.9%
JSON_Object_At_Last_Key_512 287.46 ns 385.27 ns +34.0%
JSON_Object_Defines_Miss_Same_Length 3.11 ns 3.73 ns +19.9%
JSON_PropertySet_Contains 43.33 ns 50.24 ns +15.9%
JSON_String_Key_Hash_10 2.72 ns 2.96 ns +8.8%
Regex_Period_Md_Dollar 27.91 ns 29.80 ns +6.8%
Pointer_Object_Traverse 24.94 ns 23.39 ns -6.2%
JSON_PropertySet_Filter_Object_Properties 40.07 ns 36.10 ns -9.9%
JSON_Object_Defines_Miss_Too_Small 3.11 ns 2.80 ns -10.0%
JSON_String_Equal_10 6.30 ns 5.41 ns -14.2%
Regex_Caret_Period_Range_Dollar 2.73 ns 2.33 ns -14.4%
All 110 benchmarks
Benchmark main This branch Change
Crypto_CRC32_Large_JSONL 101.69 us 101.77 us +0.1%
Crypto_AES_GCM_Encrypt_128_1KB 1.29 us 1.25 us -2.7%
Crypto_AES_GCM_Decrypt_128_1KB 1.22 us 1.23 us +0.2%
Crypto_AES_GCM_Encrypt_256_1KB 1.32 us 1.29 us -2.5%
JOSE_VerifySignature_RS256 22.25 us 22.22 us -0.1%
JOSE_VerifySignature_ES512 581.60 us 581.47 us -0.0%
GZIP_Compress_ISO_Language_Set_3_Locations 30.03 ms 30.11 ms +0.3%
GZIP_Decompress_ISO_Language_Set_3_Locations 5.18 ms 5.22 ms +0.8%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 7.24 ms 7.24 ms -0.1%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 9.05 ms 9.32 ms +3.0%
GZIP_Compress_ISO_Language_Set_3_Schema 2.04 ms 2.04 ms -0.1%
GZIP_Decompress_ISO_Language_Set_3_Schema 427.33 us 432.26 us +1.2%
Markdown_To_HTML_Realistic_Document 5.09 ms 5.07 ms -0.3%
Markdown_To_HTML_Pathological 13.51 ms 13.66 ms +1.1%
Markdown_To_HTML_Short_Descriptions 709.54 ns 703.20 ns -0.9%
HTML_Build_Table_100000 38.74 ms 38.24 ms -1.3%
HTML_Render_Table_100000 1.81 ms 1.79 ms -0.7%
JSONLD_Catalog_Annotation_List_Populate 722.66 us 740.14 us +2.4%
JSONLD_Catalog_Materialize 3.62 ms 3.67 ms +1.4%
JSONL_Parse_Large 10.52 ms 10.39 ms -1.3%
JSONL_Parse_Large_GZIP 10.70 ms 10.58 ms -1.1%
URITemplateRouter_Create 22.15 us 21.96 us -0.9%
URITemplateRouter_Match 160.77 ns 158.96 ns -1.1%
URITemplateRouterView_Restore 8.37 us 8.35 us -0.2%
URITemplateRouterView_Match 129.85 ns 130.86 ns +0.8%
URITemplateRouterView_Arguments 477.85 ns 475.50 ns -0.5%
URITemplateRouter_Match_BasePath 186.14 ns 184.64 ns -0.8%
URITemplateRouterView_Match_BasePath 150.96 ns 151.02 ns +0.0%
JSONPath_Descendant_Filter_Nested 1.69 us 1.71 us +1.5%
OpenAPI_Format_Synthetic_3_1 53.44 ms 50.96 ms -4.6%
Schema_Frame_WoT_References 2.29 ms 2.26 ms -1.1%
Schema_Frame_OMC_References 10.07 ms 10.13 ms +0.5%
Schema_Frame_OMC_Pointers 19.20 ms 19.21 ms +0.1%
Schema_Frame_OMC_Locations 8.66 ms 8.65 ms -0.1%
Schema_Frame_ISO_Language_Locations 43.51 ms 44.29 ms +1.8%
Schema_Frame_ISO_Language_Root 336.12 ns 335.77 ns -0.1%
Schema_Frame_KrakenD_References 16.55 ms 16.36 ms -1.1%
Schema_Frame_KrakenD_Reachable 145.64 ms 147.14 ms +1.0%
Schema_Frame_ISO_Language_Locations_To_JSON 33.82 ms 34.56 ms +2.2%
Schema_Frame_Many_Resources_References 147.84 ms 146.73 ms -0.8%
Schema_Frame_Deeply_Nested_References 11.46 ms 11.21 ms -2.2%
Schema_Format_ISO_Language 49.51 ms 49.99 ms +1.0%
Schema_Bundle_Meta_2020_12 657.03 us 664.50 us +1.1%
Schema_Bundle_Many_Remotes_With_Fragments 7.39 ms 7.25 ms -1.9%
Pointer_Object_Traverse 24.94 ns 23.39 ns -6.2%
Pointer_Object_Try_Traverse 24.52 ns 24.54 ns +0.1%
Pointer_Push_Back_Pointer_To_Weak_Pointer 136.44 ns 130.01 ns -4.7%
Pointer_Walker_Schema_ISO_Language 1.50 ms 1.50 ms +0.1%
Pointer_Untracked_Deeply_Nested 1.48 ms 1.50 ms +1.3%
Pointer_Tracked_Deeply_Nested 2.17 ms 2.18 ms +0.5%
Pointer_Position_Tracker_Get_Deeply_Nested 604.08 ns 604.94 ns +0.1%
Schema_Tracker_ISO_Language 4.98 ms 4.97 ms -0.1%
Schema_Tracker_ISO_Language_To_JSON 16.23 ms 15.68 ms -3.3%
JSON_Array_Of_Objects_Unique 456.65 ns 456.40 ns -0.1%
JSON_Array_Of_Integers_Unique_256 4.36 us 4.17 us -4.2%
JSON_Array_Of_Strings_Unique_Colliding_256 194.56 us 192.21 us -1.2%
JSON_Parse_1 5.62 us 5.61 us -0.0%
JSON_Parse_Real 5.59 us 5.57 us -0.5%
JSON_Parse_Decimal 10.20 us 10.18 us -0.2%
JSON_Parse_Schema_ISO_Language 3.79 ms 3.80 ms +0.3%
JSON_Parse_Integer 4.31 us 4.33 us +0.5%
JSON_Parse_String_NonSSO_Plain 3.77 us 3.69 us -2.2%
JSON_Parse_String_SSO_Plain 3.01 us 3.00 us -0.5%
JSON_Parse_String_Escape_Heavy 16.54 us 16.11 us -2.6%
JSON_Parse_Object_Short_Keys 11.04 us 11.17 us +1.1%
JSON_Parse_Object_Scalar_Properties 5.62 us 5.67 us +0.9%
JSON_Parse_Object_Array_Properties 6.87 us 7.03 us +2.3%
JSON_Parse_Object_Object_Properties 7.21 us 7.10 us -1.5%
JSON_Parse_Nested_Containers 42.71 us 43.19 us +1.1%
JSON_Fast_Hash_Helm_Chart_Lock 75.60 ns 75.57 ns -0.0%
JSON_Equality_Helm_Chart_Lock 164.96 ns 168.84 ns +2.4%
JSON_String_Equal_10 6.30 ns 5.41 ns -14.2%
JSON_String_Equal_100 6.00 ns 6.04 ns +0.6%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.62 ns 0.62 ns -0.1%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 13.07 ns 13.70 ns +4.8%
JSON_String_Fast_Hash_10 3.15 ns 3.15 ns -0.1%
JSON_String_Fast_Hash_100 3.16 ns 3.15 ns -0.2%
JSON_String_Key_Hash_10 2.72 ns 2.96 ns +8.8%
JSON_String_Key_Hash_100 13.79 ns 13.38 ns -3.0%
JSON_Object_Defines_Miss_Same_Length 3.11 ns 3.73 ns +19.9%
JSON_Object_Defines_Miss_Too_Small 3.11 ns 2.80 ns -10.0%
JSON_Object_Defines_Miss_Too_Large 3.11 ns 3.11 ns -0.0%
JSON_From_String_Copy 9.39 ns 9.22 ns -1.8%
JSON_From_String_Temporary 8.73 ns 8.64 ns -1.1%
JSON_Number_To_Double 26.18 ns 26.27 ns +0.3%
JSON_Object_At_Last_Key_8 3.83 ns 5.67 ns +47.9%
JSON_Object_At_Last_Key_32 11.88 ns 22.58 ns +90.1%
JSON_Object_At_Last_Key_128 48.61 ns 87.15 ns +79.3%
JSON_Object_At_Last_Key_512 287.46 ns 385.27 ns +34.0%
JSON_Divisible_By_Decimal 608.70 ns 588.35 ns -3.3%
JSON_PropertySet_Contains 43.33 ns 50.24 ns +15.9%
JSON_PropertySet_Filter_Object_Properties 40.07 ns 36.10 ns -9.9%
JSON_PropertySet_Insert 479.69 ns 470.71 ns -1.9%
JSON_Stringify_Schema_Web_Of_Things 65.02 us 62.44 us -4.0%
JSON_Prettify_Schema_Web_Of_Things 178.29 us 174.40 us -2.2%
Regex_Lower_S_Or_Upper_S_Asterisk 2.10 ns 2.10 ns -0.0%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.10 ns 2.03 ns -3.2%
Regex_Period_Asterisk 2.10 ns 2.10 ns -0.1%
Regex_Group_Period_Asterisk_Group 2.02 ns 2.10 ns +3.8%
Regex_Period_Plus 2.10 ns 2.10 ns -0.1%
Regex_Period 2.10 ns 2.02 ns -3.8%
Regex_Caret_Period_Plus_Dollar 2.10 ns 2.10 ns -0.1%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.02 ns 2.10 ns +3.7%
Regex_Caret_Period_Asterisk_Dollar 2.10 ns 2.10 ns -0.0%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.10 ns 2.02 ns -3.8%
Regex_Caret_X_Hyphen 6.77 ns 6.77 ns -0.1%
Regex_Period_Md_Dollar 27.91 ns 29.80 ns +6.8%
Regex_Caret_Slash_Period_Asterisk 7.08 ns 7.08 ns -0.1%
Regex_Caret_Period_Range_Dollar 2.73 ns 2.33 ns -14.4%
Regex_Nested_Backtrack 37.97 ns 37.87 ns -0.3%

Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti
jviotti merged commit 0f9a2a5 into main Oct 4, 2026
14 checks passed
@jviotti
jviotti deleted the openapi-3-0-vocabs branch October 4, 2026 16:21
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

Benchmark macos/llvm

Measured against main at f9db67f.

10 slower, 88 faster, 12 within 5%.

Benchmark main This branch Change
JSON_Object_At_Last_Key_8 4.11 ns 5.43 ns +32.4%
JSON_Object_At_Last_Key_32 13.76 ns 16.38 ns +19.1%
JSON_Parse_Object_Scalar_Properties 3.19 us 3.75 us +17.6%
JSON_String_Equal_10 7.68 ns 8.86 ns +15.4%
JSON_From_String_Temporary 6.45 ns 7.34 ns +13.7%
JSON_Number_To_Double 9.94 ns 11.02 ns +10.9%
JSON_Parse_String_NonSSO_Plain 3.37 us 3.64 us +8.0%
JSON_Parse_Object_Short_Keys 7.35 us 7.89 us +7.3%
JSON_Parse_String_SSO_Plain 2.08 us 2.20 us +5.8%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.61 ns 2.76 ns +5.7%
Regex_Caret_Period_Plus_Dollar 2.74 ns 2.53 ns -7.5%
JSON_PropertySet_Filter_Object_Properties 39.91 ns 36.73 ns -8.0%
JSON_Equality_Helm_Chart_Lock 213.18 ns 195.45 ns -8.3%
JSON_Stringify_Schema_Web_Of_Things 64.79 us 59.24 us -8.6%
JSON_String_Equal_100 8.51 ns 7.67 ns -9.9%
JSON_Parse_Real 3.92 us 3.52 us -10.1%
JSON_Object_At_Last_Key_512 233.24 ns 206.58 ns -11.4%
JSON_Fast_Hash_Helm_Chart_Lock 79.77 ns 70.64 ns -11.4%
JSON_Object_Defines_Miss_Too_Small 5.95 ns 5.26 ns -11.6%
JSON_Parse_String_Escape_Heavy 20.70 us 18.18 us -12.1%
Regex_Caret_X_Hyphen 7.99 ns 7.02 ns -12.2%
JSON_String_Fast_Hash_100 2.55 ns 2.24 ns -12.2%
JSON_Parse_Integer 3.20 us 2.78 us -13.2%
JSON_Parse_Object_Object_Properties 4.98 us 4.31 us -13.4%
JSON_String_Key_Hash_10 2.19 ns 1.88 ns -14.0%
JSON_Parse_Nested_Containers 30.52 us 26.16 us -14.3%
JSON_Parse_Object_Array_Properties 4.79 us 4.11 us -14.4%
JSON_String_Key_Hash_100 2.48 ns 2.11 ns -14.8%
Pointer_Object_Traverse 23.45 ns 19.86 ns -15.3%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 4.19 ns 3.54 ns -15.5%
Regex_Caret_Slash_Period_Asterisk 6.05 ns 5.07 ns -16.3%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.44 ns 2.02 ns -17.0%
JSON_String_Fast_Hash_10 2.87 ns 2.36 ns -17.6%
Schema_Tracker_ISO_Language 3.97 ms 3.22 ms -18.8%
JOSE_VerifySignature_ES512 1.57 ms 1.27 ms -19.0%
JSON_Divisible_By_Decimal 528.24 ns 426.27 ns -19.3%
JSON_Object_Defines_Miss_Too_Large 3.36 ns 2.71 ns -19.4%
Schema_Frame_OMC_Pointers 21.59 ms 17.16 ms -20.5%
JSON_Prettify_Schema_Web_Of_Things 192.37 us 151.18 us -21.4%
JSON_Array_Of_Objects_Unique 573.81 ns 446.51 ns -22.2%
Regex_Lower_S_Or_Upper_S_Asterisk 2.62 ns 2.02 ns -23.0%
Regex_Period_Md_Dollar 29.06 ns 22.28 ns -23.3%
Regex_Caret_Period_Range_Dollar 2.93 ns 2.22 ns -24.1%
Schema_Tracker_ISO_Language_To_JSON 16.45 ms 12.36 ms -24.9%
Crypto_AES_GCM_Encrypt_128_1KB 5.41 us 4.06 us -24.9%
Regex_Group_Period_Asterisk_Group 2.71 ns 2.01 ns -25.9%
URITemplateRouterView_Arguments 753.32 ns 553.13 ns -26.6%
Crypto_AES_GCM_Decrypt_128_1KB 5.68 us 4.15 us -26.9%
Regex_Period 2.98 ns 2.17 ns -27.3%
URITemplateRouter_Match_BasePath 286.51 ns 205.33 ns -28.3%
JSON_Array_Of_Strings_Unique_Colliding_256 226.19 us 161.86 us -28.4%
Pointer_Tracked_Deeply_Nested 1.64 ms 1.17 ms -29.0%
Pointer_Position_Tracker_Get_Deeply_Nested 539.48 ns 378.30 ns -29.9%
Regex_Period_Asterisk 2.63 ns 1.84 ns -30.0%
Schema_Frame_ISO_Language_Root 159.11 ns 111.09 ns -30.2%
GZIP_Decompress_ISO_Language_Set_3_Locations 4.43 ms 3.09 ms -30.3%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 6.46 ms 4.51 ms -30.3%
Schema_Frame_WoT_References 2.67 ms 1.86 ms -30.4%
URITemplateRouter_Create 27.08 us 18.71 us -30.9%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 9.50 ms 6.51 ms -31.5%
Regex_Period_Plus 3.62 ns 2.47 ns -31.7%
Schema_Frame_KrakenD_References 21.73 ms 14.69 ms -32.4%
URITemplateRouterView_Match 194.22 ns 130.91 ns -32.6%
GZIP_Compress_ISO_Language_Set_3_Locations 44.50 ms 29.88 ms -32.9%
URITemplateRouterView_Match_BasePath 240.48 ns 159.94 ns -33.5%
Schema_Frame_OMC_Locations 11.65 ms 7.69 ms -34.0%
Pointer_Untracked_Deeply_Nested 1.32 ms 865.30 us -34.3%
Crypto_CRC32_Large_JSONL 36.21 us 23.76 us -34.4%
Pointer_Walker_Schema_ISO_Language 2.09 ms 1.36 ms -34.6%
Markdown_To_HTML_Realistic_Document 5.16 ms 3.30 ms -36.0%
Schema_Frame_ISO_Language_Locations_To_JSON 35.76 ms 22.80 ms -36.2%
URITemplateRouter_Match 267.57 ns 168.98 ns -36.8%
Schema_Frame_OMC_References 14.34 ms 9.02 ms -37.1%
Schema_Frame_Deeply_Nested_References 20.29 ms 12.74 ms -37.2%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.87 ns 1.80 ns -37.5%
Crypto_AES_GCM_Encrypt_256_1KB 5.52 us 3.42 us -38.0%
GZIP_Compress_ISO_Language_Set_3_Schema 2.81 ms 1.73 ms -38.5%
Schema_Frame_ISO_Language_Locations 35.66 ms 21.64 ms -39.3%
GZIP_Decompress_ISO_Language_Set_3_Schema 492.81 us 298.72 us -39.4%
OpenAPI_Format_Synthetic_3_1 67.05 ms 39.42 ms -41.2%
Schema_Frame_KrakenD_Reachable 317.39 ms 182.90 ms -42.4%
JSON_Array_Of_Integers_Unique_256 8.44 us 4.84 us -42.6%
Schema_Bundle_Meta_2020_12 732.46 us 407.41 us -44.4%
JOSE_VerifySignature_RS256 42.30 us 23.48 us -44.5%
HTML_Build_Table_100000 46.00 ms 25.36 ms -44.9%
Schema_Format_ISO_Language 44.83 ms 24.53 ms -45.3%
Regex_Nested_Backtrack 51.84 ns 28.13 ns -45.7%
Schema_Frame_Many_Resources_References 212.70 ms 113.03 ms -46.9%
Schema_Bundle_Many_Remotes_With_Fragments 9.88 ms 5.13 ms -48.0%
Markdown_To_HTML_Pathological 20.80 ms 10.22 ms -50.8%
Markdown_To_HTML_Short_Descriptions 658.80 ns 315.60 ns -52.1%
JSONPath_Descendant_Filter_Nested 2.59 us 1.20 us -53.9%
HTML_Render_Table_100000 3.55 ms 1.64 ms -53.9%
URITemplateRouterView_Restore 22.62 us 10.30 us -54.5%
JSONL_Parse_Large 13.75 ms 6.05 ms -56.0%
JSONL_Parse_Large_GZIP 14.16 ms 5.89 ms -58.4%
JSONLD_Catalog_Materialize 5.68 ms 2.20 ms -61.3%
JSONLD_Catalog_Annotation_List_Populate 1.22 ms 473.98 us -61.3%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 2.62 ns 2.02 ns -23.0%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.44 ns 2.02 ns -17.0%
Regex_Period_Asterisk 2.63 ns 1.84 ns -30.0%
Regex_Group_Period_Asterisk_Group 2.71 ns 2.01 ns -25.9%
Regex_Period_Plus 3.62 ns 2.47 ns -31.7%
Regex_Period 2.98 ns 2.17 ns -27.3%
Regex_Caret_Period_Plus_Dollar 2.74 ns 2.53 ns -7.5%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.61 ns 2.76 ns +5.7%
Regex_Caret_Period_Asterisk_Dollar 2.57 ns 2.47 ns -3.7%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.87 ns 1.80 ns -37.5%
Regex_Caret_X_Hyphen 7.99 ns 7.02 ns -12.2%
Regex_Period_Md_Dollar 29.06 ns 22.28 ns -23.3%
Regex_Caret_Slash_Period_Asterisk 6.05 ns 5.07 ns -16.3%
Regex_Caret_Period_Range_Dollar 2.93 ns 2.22 ns -24.1%
Regex_Nested_Backtrack 51.84 ns 28.13 ns -45.7%
JSON_Array_Of_Objects_Unique 573.81 ns 446.51 ns -22.2%
JSON_Array_Of_Integers_Unique_256 8.44 us 4.84 us -42.6%
JSON_Array_Of_Strings_Unique_Colliding_256 226.19 us 161.86 us -28.4%
JSON_Parse_1 3.63 us 3.45 us -4.8%
JSON_Parse_Real 3.92 us 3.52 us -10.1%
JSON_Parse_Decimal 7.62 us 7.25 us -4.7%
JSON_Parse_Schema_ISO_Language 2.64 ms 2.63 ms -0.4%
JSON_Parse_Integer 3.20 us 2.78 us -13.2%
JSON_Parse_String_NonSSO_Plain 3.37 us 3.64 us +8.0%
JSON_Parse_String_SSO_Plain 2.08 us 2.20 us +5.8%
JSON_Parse_String_Escape_Heavy 20.70 us 18.18 us -12.1%
JSON_Parse_Object_Short_Keys 7.35 us 7.89 us +7.3%
JSON_Parse_Object_Scalar_Properties 3.19 us 3.75 us +17.6%
JSON_Parse_Object_Array_Properties 4.79 us 4.11 us -14.4%
JSON_Parse_Object_Object_Properties 4.98 us 4.31 us -13.4%
JSON_Parse_Nested_Containers 30.52 us 26.16 us -14.3%
JSON_Fast_Hash_Helm_Chart_Lock 79.77 ns 70.64 ns -11.4%
JSON_Equality_Helm_Chart_Lock 213.18 ns 195.45 ns -8.3%
JSON_String_Equal_10 7.68 ns 8.86 ns +15.4%
JSON_String_Equal_100 8.51 ns 7.67 ns -9.9%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.40 ns 0.39 ns -2.5%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 4.19 ns 3.54 ns -15.5%
JSON_String_Fast_Hash_10 2.87 ns 2.36 ns -17.6%
JSON_String_Fast_Hash_100 2.55 ns 2.24 ns -12.2%
JSON_String_Key_Hash_10 2.19 ns 1.88 ns -14.0%
JSON_String_Key_Hash_100 2.48 ns 2.11 ns -14.8%
JSON_Object_Defines_Miss_Same_Length 3.16 ns 3.11 ns -1.7%
JSON_Object_Defines_Miss_Too_Small 5.95 ns 5.26 ns -11.6%
JSON_Object_Defines_Miss_Too_Large 3.36 ns 2.71 ns -19.4%
JSON_From_String_Copy 11.25 ns 11.25 ns -0.0%
JSON_From_String_Temporary 6.45 ns 7.34 ns +13.7%
JSON_Number_To_Double 9.94 ns 11.02 ns +10.9%
JSON_Object_At_Last_Key_8 4.11 ns 5.43 ns +32.4%
JSON_Object_At_Last_Key_32 13.76 ns 16.38 ns +19.1%
JSON_Object_At_Last_Key_128 60.72 ns 62.78 ns +3.4%
JSON_Object_At_Last_Key_512 233.24 ns 206.58 ns -11.4%
JSON_Divisible_By_Decimal 528.24 ns 426.27 ns -19.3%
JSON_PropertySet_Contains 46.84 ns 45.57 ns -2.7%
JSON_PropertySet_Filter_Object_Properties 39.91 ns 36.73 ns -8.0%
JSON_PropertySet_Insert 373.78 ns 356.50 ns -4.6%
JSON_Stringify_Schema_Web_Of_Things 64.79 us 59.24 us -8.6%
JSON_Prettify_Schema_Web_Of_Things 192.37 us 151.18 us -21.4%
Pointer_Object_Traverse 23.45 ns 19.86 ns -15.3%
Pointer_Object_Try_Traverse 35.63 ns 35.49 ns -0.4%
Pointer_Push_Back_Pointer_To_Weak_Pointer 169.68 ns 166.55 ns -1.8%
Pointer_Walker_Schema_ISO_Language 2.09 ms 1.36 ms -34.6%
Pointer_Untracked_Deeply_Nested 1.32 ms 865.30 us -34.3%
Pointer_Tracked_Deeply_Nested 1.64 ms 1.17 ms -29.0%
Pointer_Position_Tracker_Get_Deeply_Nested 539.48 ns 378.30 ns -29.9%
Schema_Tracker_ISO_Language 3.97 ms 3.22 ms -18.8%
Schema_Tracker_ISO_Language_To_JSON 16.45 ms 12.36 ms -24.9%
Schema_Frame_WoT_References 2.67 ms 1.86 ms -30.4%
Schema_Frame_OMC_References 14.34 ms 9.02 ms -37.1%
Schema_Frame_OMC_Pointers 21.59 ms 17.16 ms -20.5%
Schema_Frame_OMC_Locations 11.65 ms 7.69 ms -34.0%
Schema_Frame_ISO_Language_Locations 35.66 ms 21.64 ms -39.3%
Schema_Frame_ISO_Language_Root 159.11 ns 111.09 ns -30.2%
Schema_Frame_KrakenD_References 21.73 ms 14.69 ms -32.4%
Schema_Frame_KrakenD_Reachable 317.39 ms 182.90 ms -42.4%
Schema_Frame_ISO_Language_Locations_To_JSON 35.76 ms 22.80 ms -36.2%
Schema_Frame_Many_Resources_References 212.70 ms 113.03 ms -46.9%
Schema_Frame_Deeply_Nested_References 20.29 ms 12.74 ms -37.2%
Schema_Format_ISO_Language 44.83 ms 24.53 ms -45.3%
Schema_Bundle_Meta_2020_12 732.46 us 407.41 us -44.4%
Schema_Bundle_Many_Remotes_With_Fragments 9.88 ms 5.13 ms -48.0%
OpenAPI_Format_Synthetic_3_1 67.05 ms 39.42 ms -41.2%
JSONPath_Descendant_Filter_Nested 2.59 us 1.20 us -53.9%
URITemplateRouter_Create 27.08 us 18.71 us -30.9%
URITemplateRouter_Match 267.57 ns 168.98 ns -36.8%
URITemplateRouterView_Restore 22.62 us 10.30 us -54.5%
URITemplateRouterView_Match 194.22 ns 130.91 ns -32.6%
URITemplateRouterView_Arguments 753.32 ns 553.13 ns -26.6%
URITemplateRouter_Match_BasePath 286.51 ns 205.33 ns -28.3%
URITemplateRouterView_Match_BasePath 240.48 ns 159.94 ns -33.5%
JSONL_Parse_Large 13.75 ms 6.05 ms -56.0%
JSONL_Parse_Large_GZIP 14.16 ms 5.89 ms -58.4%
JSONLD_Catalog_Annotation_List_Populate 1.22 ms 473.98 us -61.3%
JSONLD_Catalog_Materialize 5.68 ms 2.20 ms -61.3%
HTML_Build_Table_100000 46.00 ms 25.36 ms -44.9%
HTML_Render_Table_100000 3.55 ms 1.64 ms -53.9%
Markdown_To_HTML_Realistic_Document 5.16 ms 3.30 ms -36.0%
Markdown_To_HTML_Pathological 20.80 ms 10.22 ms -50.8%
Markdown_To_HTML_Short_Descriptions 658.80 ns 315.60 ns -52.1%
GZIP_Compress_ISO_Language_Set_3_Locations 44.50 ms 29.88 ms -32.9%
GZIP_Decompress_ISO_Language_Set_3_Locations 4.43 ms 3.09 ms -30.3%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 6.46 ms 4.51 ms -30.3%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 9.50 ms 6.51 ms -31.5%
GZIP_Compress_ISO_Language_Set_3_Schema 2.81 ms 1.73 ms -38.5%
GZIP_Decompress_ISO_Language_Set_3_Schema 492.81 us 298.72 us -39.4%
JOSE_VerifySignature_RS256 42.30 us 23.48 us -44.5%
JOSE_VerifySignature_ES512 1.57 ms 1.27 ms -19.0%
Crypto_CRC32_Large_JSONL 36.21 us 23.76 us -34.4%
Crypto_AES_GCM_Encrypt_128_1KB 5.41 us 4.06 us -24.9%
Crypto_AES_GCM_Decrypt_128_1KB 5.68 us 4.15 us -26.9%
Crypto_AES_GCM_Encrypt_256_1KB 5.52 us 3.42 us -38.0%

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