Skip to content

Commit

Permalink
Improve handling of top-level $ref before 2019-09 (#1507)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
  • Loading branch information
jviotti authored Jan 30, 2025
1 parent 9f78156 commit 47ba230
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 5 deletions.
15 changes: 14 additions & 1 deletion src/core/jsonschema/jsonschema.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#include <type_traits> // std::remove_reference_t
#include <utility> // std::move

#include <iostream>

auto sourcemeta::core::is_schema(const sourcemeta::core::JSON &schema) -> bool {
return schema.is_object() || schema.is_boolean();
}
Expand Down Expand Up @@ -96,7 +98,17 @@ auto sourcemeta::core::identify(
return default_id;
}

return identify(schema, maybe_base_dialect.value(), default_id);
const auto result{identify(schema, maybe_base_dialect.value(), default_id)};

// A last shot supporting identifiers alongside `$ref` in loose mode
if (!result.has_value() && strategy == SchemaIdentificationStrategy::Loose) {
const auto keyword{id_keyword(maybe_base_dialect.value())};
if (schema.defines(keyword) && schema.at(keyword).is_string()) {
return schema.at(keyword).to_string();
}
}

return result;
}

auto sourcemeta::core::identify(const JSON &schema,
Expand All @@ -108,6 +120,7 @@ auto sourcemeta::core::identify(const JSON &schema,
}

const auto keyword{id_keyword(base_dialect)};

if (!schema.defines(keyword)) {
return default_id;
}
Expand Down
8 changes: 5 additions & 3 deletions src/core/jsonschema/resolver.cc
Original file line number Diff line number Diff line change
Expand Up @@ -101,23 +101,25 @@ auto SchemaFlatFileResolver::add(
const auto identifier{sourcemeta::core::identify(
schema, *this, SchemaIdentificationStrategy::Loose, default_dialect,
default_id)};
if (!identifier.has_value()) {
if (!identifier.has_value() && !default_id.has_value()) {
std::ostringstream error;
error << "Cannot identify schema: " << canonical.string();
throw SchemaError(error.str());
}

// Filesystems behave differently with regards to casing. To unify
// them, assume they are case-insensitive.
const auto effective_identifier{to_lowercase(identifier.value())};
const auto effective_identifier{to_lowercase(
default_id.has_value() ? identifier.value_or(default_id.value())
: identifier.value())};

const auto result{this->schemas.emplace(
effective_identifier,
Entry{canonical, default_dialect, effective_identifier, reader})};
if (!result.second && result.first->second.path != canonical) {
std::ostringstream error;
error << "Cannot register the same identifier twice: "
<< identifier.value();
<< effective_identifier;
throw SchemaError(error.str());
}

Expand Down
28 changes: 27 additions & 1 deletion test/jsonschema/jsonschema_flat_file_resolver_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ TEST(JSONSchema_SchemaFlatFileResolver, single_schema_with_default_dialect) {
expected);
}

TEST(JSONSchema_SchemaFlatFileResolver, single_schema_anonymous_with_default) {
TEST(JSONSchema_SchemaFlatFileResolver,
single_schema_anonymous_with_default_id) {
sourcemeta::core::SchemaFlatFileResolver resolver;
const auto schema_path{std::filesystem::path{SCHEMAS_PATH} /
"2020-12-anonymous.json"};
Expand All @@ -78,6 +79,31 @@ TEST(JSONSchema_SchemaFlatFileResolver, single_schema_anonymous_with_default) {
EXPECT_EQ(resolver("https://www.sourcemeta.com/test").value(), expected);
}

TEST(JSONSchema_SchemaFlatFileResolver, draft4_top_level_ref) {
sourcemeta::core::SchemaFlatFileResolver resolver;
const auto schema_path{std::filesystem::path{SCHEMAS_PATH} /
"draft4-top-level-ref.json"};

const sourcemeta::core::JSON expected = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://www.sourcemeta.com/draft4-top-level-ref.json",
"allOf": [ { "$ref": "#/definitions/foo" } ],
"definitions": {
"foo": {
"type": "string"
}
}
})JSON");

const auto &identifier{resolver.add(schema_path)};
EXPECT_EQ(identifier, "https://www.sourcemeta.com/draft4-top-level-ref.json");
EXPECT_TRUE(resolver("https://www.sourcemeta.com/draft4-top-level-ref.json")
.has_value());
EXPECT_EQ(
resolver("https://www.sourcemeta.com/draft4-top-level-ref.json").value(),
expected);
}

TEST(JSONSchema_SchemaFlatFileResolver, single_schema_idempotent) {
sourcemeta::core::SchemaFlatFileResolver resolver;
const auto schema_path{std::filesystem::path{SCHEMAS_PATH} /
Expand Down
35 changes: 35 additions & 0 deletions test/jsonschema/jsonschema_identify_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,41 @@ TEST(JSONSchema_identify, loose_with_resolvable_default_dialect) {
EXPECT_EQ(id.value(), "http://example.com/my-schema");
}

TEST(JSONSchema_identify, strict_draft4_top_level_ref) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://example.com/my-schema",
"$ref": "#/definitions/foo",
"definitions": {
"foo": {
"type": "string"
}
}
})JSON");
std::optional<std::string> id{sourcemeta::core::identify(
document, sourcemeta::core::schema_official_resolver,
sourcemeta::core::SchemaIdentificationStrategy::Strict)};
EXPECT_FALSE(id.has_value());
}

TEST(JSONSchema_identify, loose_draft4_top_level_ref) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://example.com/my-schema",
"$ref": "#/definitions/foo",
"definitions": {
"foo": {
"type": "string"
}
}
})JSON");
std::optional<std::string> id{sourcemeta::core::identify(
document, sourcemeta::core::schema_official_resolver,
sourcemeta::core::SchemaIdentificationStrategy::Loose)};
EXPECT_TRUE(id.has_value());
EXPECT_EQ(id.value(), "http://example.com/my-schema");
}

TEST(JSONSchema_identify, loose_with_unresolvable_dialect) {
const sourcemeta::core::JSON document = sourcemeta::core::parse_json(R"JSON({
"$id": "https://example.com/my-schema",
Expand Down
10 changes: 10 additions & 0 deletions test/jsonschema/schemas/draft4-top-level-ref.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "https://www.sourcemeta.com/draft4-top-level-ref.json",
"$ref": "#/definitions/foo",
"definitions": {
"foo": {
"type": "string"
}
}
}

10 comments on commit 47ba230

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2100636363410158 ns/iter 2.214934580625004 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.194821838943639 ns/iter 2.2098685499841837 ns/iter 0.99
Regex_Period_Asterisk 2.1989402700165894 ns/iter 2.207460463379794 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 2.205013974098886 ns/iter 2.1950048594352354 ns/iter 1.00
Regex_Period_Plus 2.804201825176429 ns/iter 2.800059284486668 ns/iter 1.00
Regex_Period 2.7982226013513487 ns/iter 2.7993142669995965 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.7979928828860836 ns/iter 2.5309324521341168 ns/iter 1.11
Regex_Caret_Group_Period_Plus_Group_Dollar 2.7980279630459655 ns/iter 2.490627081626202 ns/iter 1.12
Regex_Caret_Period_Asterisk_Dollar 3.419063169533917 ns/iter 2.2579637626666376 ns/iter 1.51
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.417328196933433 ns/iter 2.2035949614720782 ns/iter 1.55
Regex_Caret_X_Hyphen 7.154157223854327 ns/iter 13.058236312197078 ns/iter 0.55
Regex_Period_Md_Dollar 81.4516089003816 ns/iter 81.85036121313571 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 6.8358039924410665 ns/iter 5.5995588271140715 ns/iter 1.22
Regex_Caret_Period_Range_Dollar 4.042334629550904 ns/iter 2.8004867029826674 ns/iter 1.44
Regex_Nested_Backtrack 505.2875877849932 ns/iter 505.1908975539954 ns/iter 1.00
JSON_Array_Of_Objects_Unique 404.3171249529796 ns/iter 405.3954951538911 ns/iter 1.00
JSON_Parse_1 30810.38177985923 ns/iter 30731.911361239596 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 59.395381460547306 ns/iter 59.42963860139885 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 176.6284076189866 ns/iter 156.38390344700295 ns/iter 1.13
JSON_String_Equal/10 8.70554466709367 ns/iter 7.4723969973777775 ns/iter 1.17
JSON_String_Equal/100 8.407703904222428 ns/iter 8.124521684473597 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9355777433127198 ns/iter 0.9352833561514684 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.258589801430144 ns/iter 14.600988160490154 ns/iter 0.70
JSON_String_Fast_Hash/10 2.489372957293372 ns/iter 2.5159901866659675 ns/iter 0.99
JSON_String_Fast_Hash/100 2.4890437230659974 ns/iter 2.4916836112013376 ns/iter 1.00
JSON_String_Key_Hash/10 2.177748117937315 ns/iter 2.654364959230388 ns/iter 0.82
JSON_String_Key_Hash/100 1.866570623226961 ns/iter 1.9792294657657667 ns/iter 0.94
JSON_Object_Defines_Miss_Same_Length 3.7372854539942337 ns/iter 3.7616571881495875 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 3.7341720437072947 ns/iter 3.7348564123095773 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7341897553092602 ns/iter 3.7422274293700606 ns/iter 1.00
Pointer_Object_Traverse 44.29425487072582 ns/iter 44.42984483164935 ns/iter 1.00
Pointer_Object_Try_Traverse 52.3101246318443 ns/iter 52.424037550013054 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 307.7124987359808 ns/iter 289.5113552066011 ns/iter 1.06

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9745042656039364 ns/iter 1.8149041496435243 ns/iter 1.09
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.9412653988020185 ns/iter 1.7726250263004253 ns/iter 1.10
Regex_Period_Asterisk 1.9550467724944827 ns/iter 1.7517353102451725 ns/iter 1.12
Regex_Group_Period_Asterisk_Group 1.8814444194608488 ns/iter 1.7782668173105727 ns/iter 1.06
Regex_Period_Plus 2.1479083789759033 ns/iter 2.0926814798592823 ns/iter 1.03
Regex_Period 2.081363352680816 ns/iter 2.235932426693975 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 2.082153511468997 ns/iter 2.068572542322751 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 2.08128837684697 ns/iter 2.133421134746126 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 1.7034244541630366 ns/iter 1.8179366305990214 ns/iter 0.94
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7278917317124247 ns/iter 1.741899402916121 ns/iter 0.99
Regex_Caret_X_Hyphen 7.657357153253931 ns/iter 7.33966098849984 ns/iter 1.04
Regex_Period_Md_Dollar 77.01190823285116 ns/iter 74.21081455248317 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 5.938168284158214 ns/iter 5.592377017047853 ns/iter 1.06
Regex_Caret_Period_Range_Dollar 2.556273306367115 ns/iter 2.6201010503858004 ns/iter 0.98
Regex_Nested_Backtrack 839.5011906215375 ns/iter 889.532881309101 ns/iter 0.94
JSON_Array_Of_Objects_Unique 392.04461904024 ns/iter 396.2327922010947 ns/iter 0.99
JSON_Parse_1 26642.59279213484 ns/iter 24150.408925991967 ns/iter 1.10
JSON_Fast_Hash_Helm_Chart_Lock 63.23531445160722 ns/iter 55.94654737063668 ns/iter 1.13
JSON_Equality_Helm_Chart_Lock 146.1841065711842 ns/iter 143.12628495378607 ns/iter 1.02
JSON_String_Equal/10 8.988137093797105 ns/iter 9.35102228963665 ns/iter 0.96
JSON_String_Equal/100 6.788638938377473 ns/iter 7.723047118821051 ns/iter 0.88
JSON_String_Equal_Small_By_Perfect_Hash/10 0.36047282740669595 ns/iter 0.35244533595837585 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.106964095170641 ns/iter 3.2951537701325675 ns/iter 0.94
JSON_String_Fast_Hash/10 1.742183676665746 ns/iter 1.8322733292425428 ns/iter 0.95
JSON_String_Fast_Hash/100 2.0892758322345366 ns/iter 2.48788930068629 ns/iter 0.84
JSON_String_Key_Hash/10 1.4004560478608283 ns/iter 1.3573837055045914 ns/iter 1.03
JSON_String_Key_Hash/100 1.4538434929935353 ns/iter 1.35882697532982 ns/iter 1.07
JSON_Object_Defines_Miss_Same_Length 2.4381794373568715 ns/iter 2.3760363485182494 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Small 2.510396772515559 ns/iter 2.46093029735672 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 2.915960482552706 ns/iter 2.354293022975008 ns/iter 1.24
Pointer_Object_Traverse 19.76034370273945 ns/iter 19.27826495586437 ns/iter 1.03
Pointer_Object_Try_Traverse 28.49620659132632 ns/iter 25.914105647135884 ns/iter 1.10
Pointer_Push_Back_Pointer_To_Weak_Pointer 207.22163364468958 ns/iter 195.6004890807307 ns/iter 1.06

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 7.04222991071392 ns/iter 6.87245312499434 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 7.172650669642978 ns/iter 6.996374999995884 ns/iter 1.03
Regex_Period_Asterisk 7.187287946427899 ns/iter 7.043151785706772 ns/iter 1.02
Regex_Group_Period_Asterisk_Group 6.9346595982138535 ns/iter 6.854569642858418 ns/iter 1.01
Regex_Period_Plus 7.419771205357607 ns/iter 7.43438281249707 ns/iter 1.00
Regex_Period 7.356082589285202 ns/iter 7.163812468017149 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 7.630916294643392 ns/iter 7.2721037946519935 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 7.206599330358593 ns/iter 7.36713616070972 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 6.917502232141207 ns/iter 7.156600446427725 ns/iter 0.97
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.9629303260578705 ns/iter 7.047915178566606 ns/iter 0.99
Regex_Caret_X_Hyphen 14.285444802296762 ns/iter 11.912745312500306 ns/iter 1.20
Regex_Period_Md_Dollar 151.18301339285267 ns/iter 149.58930803581032 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 10.606762499999636 ns/iter 10.834940625002787 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 7.836890590014473 ns/iter 7.787271393798248 ns/iter 1.01
Regex_Nested_Backtrack 612.6450000000513 ns/iter 617.2418749997632 ns/iter 0.99
JSON_Array_Of_Objects_Unique 494.9793137234966 ns/iter 486.89827638598916 ns/iter 1.02
JSON_Parse_1 80311.22271326442 ns/iter 81211.9084821055 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 65.14688392856881 ns/iter 66.90710714281067 ns/iter 0.97
JSON_Equality_Helm_Chart_Lock 185.63407014589015 ns/iter 183.64277792240526 ns/iter 1.01
JSON_String_Equal/10 9.038377191794615 ns/iter 8.98976785714061 ns/iter 1.01
JSON_String_Equal/100 9.910792187501016 ns/iter 9.91848879500475 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.174163125000206 ns/iter 2.1670853125016265 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.45603794642858 ns/iter 14.85454910715183 ns/iter 1.04
JSON_String_Fast_Hash/10 4.031442194698177 ns/iter 4.053623883924574 ns/iter 0.99
JSON_String_Fast_Hash/100 4.033031808036317 ns/iter 4.034561033990691 ns/iter 1.00
JSON_String_Key_Hash/10 7.91483032180826 ns/iter 7.782887276783462 ns/iter 1.02
JSON_String_Key_Hash/100 4.038672283997418 ns/iter 4.026141212550132 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.746971064737038 ns/iter 3.717479212941019 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Small 5.027915999999095 ns/iter 4.953391000008196 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 3.4317657528006595 ns/iter 3.406648431413585 ns/iter 1.01
Pointer_Object_Traverse 49.321504803648956 ns/iter 50.040979999994306 ns/iter 0.99
Pointer_Object_Try_Traverse 67.59910714284295 ns/iter 67.54008928567146 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 163.8541741071618 ns/iter 179.99988705357302 ns/iter 0.91

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9271846913407817 ns/iter 2.026204661603368 ns/iter 0.95
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.932944829576268 ns/iter 2.0557444814705064 ns/iter 0.94
Regex_Period_Asterisk 1.9922593411931628 ns/iter 2.072147714081021 ns/iter 0.96
Regex_Group_Period_Asterisk_Group 2.1032413969862356 ns/iter 2.3141456612298805 ns/iter 0.91
Regex_Period_Plus 1.9982821355399112 ns/iter 2.0479396389069824 ns/iter 0.98
Regex_Period 1.963385308647583 ns/iter 2.0176757681333206 ns/iter 0.97
Regex_Caret_Period_Plus_Dollar 1.9371458335804648 ns/iter 2.004273546452147 ns/iter 0.97
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9410444636362356 ns/iter 2.0364470298115527 ns/iter 0.95
Regex_Caret_Period_Asterisk_Dollar 2.031300641134403 ns/iter 2.084475610800603 ns/iter 0.97
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.37782196674005 ns/iter 2.4282226925518855 ns/iter 0.98
Regex_Caret_X_Hyphen 6.200766652141059 ns/iter 6.444312136606807 ns/iter 0.96
Regex_Period_Md_Dollar 73.94150878891523 ns/iter 76.59141047831147 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 4.783136695489747 ns/iter 5.640058517456055 ns/iter 0.85
Regex_Caret_Period_Range_Dollar 2.2649818452753383 ns/iter 2.183401508555047 ns/iter 1.04
Regex_Nested_Backtrack 914.7182570873321 ns/iter 893.5818635176652 ns/iter 1.02
JSON_Array_Of_Objects_Unique 239.31616743914503 ns/iter 212.59116498832967 ns/iter 1.13
JSON_Parse_1 26371.53997911759 ns/iter 26159.877776402758 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 26.616676440561005 ns/iter 25.750001845006388 ns/iter 1.03
JSON_Equality_Helm_Chart_Lock 127.80049231410891 ns/iter 119.81589903272769 ns/iter 1.07
JSON_String_Equal/10 5.968354344536137 ns/iter 5.933745470328619 ns/iter 1.01
JSON_String_Equal/100 5.46282286623326 ns/iter 5.7331870677664165 ns/iter 0.95
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7896949126056495 ns/iter 0.8231414608203673 ns/iter 0.96
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.5537224766055346 ns/iter 3.7552263237605072 ns/iter 0.95
JSON_String_Fast_Hash/10 1.9130318472673788 ns/iter 2.04934881617062 ns/iter 0.93
JSON_String_Fast_Hash/100 1.9121514775409707 ns/iter 2.073956469169083 ns/iter 0.92
JSON_String_Key_Hash/10 1.438809768523175 ns/iter 1.5834478244216128 ns/iter 0.91
JSON_String_Key_Hash/100 1.9274921165497474 ns/iter 2.1584915382947343 ns/iter 0.89
JSON_Object_Defines_Miss_Same_Length 1.765211050733194 ns/iter 2.0954668525045217 ns/iter 0.84
JSON_Object_Defines_Miss_Too_Small 1.8990655548879982 ns/iter 2.0462044982975427 ns/iter 0.93
JSON_Object_Defines_Miss_Too_Large 1.7584700309818315 ns/iter 1.8568784811239738 ns/iter 0.95
Pointer_Object_Traverse 56.04023902420101 ns/iter 58.72231027510378 ns/iter 0.95
Pointer_Object_Try_Traverse 36.4454317402181 ns/iter 40.52479275617672 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 163.50325481434692 ns/iter 172.8734237906307 ns/iter 0.95

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Pointer_Object_Traverse 44.167189807440835 ns/iter 46.81195849922776 ns/iter 0.94
Pointer_Object_Try_Traverse 26.15153006835901 ns/iter 26.13433963312741 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 150.63052917437588 ns/iter 173.30767359115782 ns/iter 0.87
JSON_Array_Of_Objects_Unique 410.1156913035323 ns/iter 432.6945040873994 ns/iter 0.95
JSON_Parse_1 33187.97660957452 ns/iter 33582.36686049202 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 62.56049217997831 ns/iter 65.2511199128042 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 149.4407808926958 ns/iter 148.41844642547414 ns/iter 1.01
JSON_String_Equal/10 7.275115114346626 ns/iter 6.3412105369757485 ns/iter 1.15
JSON_String_Equal/100 6.964280901005888 ns/iter 6.817942901666961 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9335654123176871 ns/iter 0.94117369329323 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.290847769718573 ns/iter 14.289036218353761 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9359830948352458 ns/iter 0.9339957645905962 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9345159149944631 ns/iter 0.9322254430938337 ns/iter 1.00
JSON_String_Key_Hash/10 1.6741580160542204 ns/iter 1.6719405689392688 ns/iter 1.00
JSON_String_Key_Hash/100 1.9863298169540737 ns/iter 1.9841756556886831 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4903242876063154 ns/iter 2.4886244264386645 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4877007938874227 ns/iter 2.4886526860485274 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1091649432583814 ns/iter 3.108697667460751 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.49068721488233 ns/iter 3.4190865914827304 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4214982205171665 ns/iter 3.4274842639242245 ns/iter 1.00
Regex_Period_Asterisk 3.4201647657036505 ns/iter 3.4201186263762757 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.419881193230715 ns/iter 3.4179188470109834 ns/iter 1.00
Regex_Period_Plus 3.73459831142525 ns/iter 3.7311810458302053 ns/iter 1.00
Regex_Period 3.509207457120397 ns/iter 3.786127262932944 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 3.429397938480828 ns/iter 3.7448074688854947 ns/iter 0.92
Regex_Caret_Group_Period_Plus_Group_Dollar 3.418721130593378 ns/iter 3.4711532818795647 ns/iter 0.98
Regex_Caret_Period_Asterisk_Dollar 3.7297910710828504 ns/iter 3.749350436011022 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.733805129334269 ns/iter 3.733129679791966 ns/iter 1.00
Regex_Caret_X_Hyphen 8.390881227330002 ns/iter 12.432056288371868 ns/iter 0.67
Regex_Period_Md_Dollar 89.19292542328277 ns/iter 88.8065383358503 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 8.156065569413038 ns/iter 8.082334089566555 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 4.660947449162288 ns/iter 4.668718467553509 ns/iter 1.00
Regex_Nested_Backtrack 816.9759682908486 ns/iter 828.3505585874228 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.5713484852241382 ns/iter 1.8149041496435243 ns/iter 0.87
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5660113021272895 ns/iter 1.7726250263004253 ns/iter 0.88
Regex_Period_Asterisk 1.5953073664595665 ns/iter 1.7517353102451725 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 1.6008401116498083 ns/iter 1.7782668173105727 ns/iter 0.90
Regex_Period_Plus 1.9316941545458586 ns/iter 2.0926814798592823 ns/iter 0.92
Regex_Period 1.9186070762444063 ns/iter 2.235932426693975 ns/iter 0.86
Regex_Caret_Period_Plus_Dollar 1.9624760541756245 ns/iter 2.068572542322751 ns/iter 0.95
Regex_Caret_Group_Period_Plus_Group_Dollar 1.905604432552387 ns/iter 2.133421134746126 ns/iter 0.89
Regex_Caret_Period_Asterisk_Dollar 1.6004040578981371 ns/iter 1.8179366305990214 ns/iter 0.88
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5943822545004454 ns/iter 1.741899402916121 ns/iter 0.92
Regex_Caret_X_Hyphen 6.818287122783877 ns/iter 7.33966098849984 ns/iter 0.93
Regex_Period_Md_Dollar 67.70719158435688 ns/iter 74.21081455248317 ns/iter 0.91
Regex_Caret_Slash_Period_Asterisk 5.020380209845476 ns/iter 5.592377017047853 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 2.221881671147583 ns/iter 2.6201010503858004 ns/iter 0.85
Regex_Nested_Backtrack 725.5736332998714 ns/iter 889.532881309101 ns/iter 0.82
JSON_Array_Of_Objects_Unique 335.0884038715104 ns/iter 396.2327922010947 ns/iter 0.85
JSON_Parse_1 21384.958506225623 ns/iter 24150.408925991967 ns/iter 0.89
JSON_Fast_Hash_Helm_Chart_Lock 48.66851092105621 ns/iter 55.94654737063668 ns/iter 0.87
JSON_Equality_Helm_Chart_Lock 120.1480748050285 ns/iter 143.12628495378607 ns/iter 0.84
JSON_String_Equal/10 7.540940641172207 ns/iter 9.35102228963665 ns/iter 0.81
JSON_String_Equal/100 6.093101003791812 ns/iter 7.723047118821051 ns/iter 0.79
JSON_String_Equal_Small_By_Perfect_Hash/10 0.31494364805820074 ns/iter 0.35244533595837585 ns/iter 0.89
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 2.9509267244857273 ns/iter 3.2951537701325675 ns/iter 0.90
JSON_String_Fast_Hash/10 1.6014716923979975 ns/iter 1.8322733292425428 ns/iter 0.87
JSON_String_Fast_Hash/100 1.8871790689858416 ns/iter 2.48788930068629 ns/iter 0.76
JSON_String_Key_Hash/10 1.2764565146240332 ns/iter 1.3573837055045914 ns/iter 0.94
JSON_String_Key_Hash/100 1.258500066225003 ns/iter 1.35882697532982 ns/iter 0.93
JSON_Object_Defines_Miss_Same_Length 2.228360987489705 ns/iter 2.3760363485182494 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Small 2.202114163345583 ns/iter 2.46093029735672 ns/iter 0.89
JSON_Object_Defines_Miss_Too_Large 2.2203725461353496 ns/iter 2.354293022975008 ns/iter 0.94
Pointer_Object_Traverse 17.446365143013832 ns/iter 19.27826495586437 ns/iter 0.90
Pointer_Object_Try_Traverse 21.94820976499528 ns/iter 25.914105647135884 ns/iter 0.85
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.35639273453575 ns/iter 195.6004890807307 ns/iter 0.90

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.214792456873274 ns/iter 2.214934580625004 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.199293710295644 ns/iter 2.2098685499841837 ns/iter 1.00
Regex_Period_Asterisk 2.2056450939106877 ns/iter 2.207460463379794 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 2.2092127469822156 ns/iter 2.1950048594352354 ns/iter 1.01
Regex_Period_Plus 2.5941150636804466 ns/iter 2.800059284486668 ns/iter 0.93
Regex_Period 2.4879981074539437 ns/iter 2.7993142669995965 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 2.48931131901968 ns/iter 2.5309324521341168 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 2.489725965335392 ns/iter 2.490627081626202 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 2.2068433030437067 ns/iter 2.2579637626666376 ns/iter 0.98
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.2174492782613098 ns/iter 2.2035949614720782 ns/iter 1.01
Regex_Caret_X_Hyphen 13.069014431538575 ns/iter 13.058236312197078 ns/iter 1.00
Regex_Period_Md_Dollar 82.88273991332822 ns/iter 81.85036121313571 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 5.591777420915242 ns/iter 5.5995588271140715 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 2.844709956578945 ns/iter 2.8004867029826674 ns/iter 1.02
Regex_Nested_Backtrack 500.29106441854333 ns/iter 505.1908975539954 ns/iter 0.99
JSON_Array_Of_Objects_Unique 405.28951361387277 ns/iter 405.3954951538911 ns/iter 1.00
JSON_Parse_1 30530.195266789593 ns/iter 30731.911361239596 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 59.39361783754753 ns/iter 59.42963860139885 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 170.84421544797362 ns/iter 156.38390344700295 ns/iter 1.09
JSON_String_Equal/10 7.775522396473058 ns/iter 7.4723969973777775 ns/iter 1.04
JSON_String_Equal/100 8.404812985413413 ns/iter 8.124521684473597 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9343435226434842 ns/iter 0.9352833561514684 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.25582894478646 ns/iter 14.600988160490154 ns/iter 0.70
JSON_String_Fast_Hash/10 2.4868725323260366 ns/iter 2.5159901866659675 ns/iter 0.99
JSON_String_Fast_Hash/100 2.48821114202249 ns/iter 2.4916836112013376 ns/iter 1.00
JSON_String_Key_Hash/10 2.1812203652347093 ns/iter 2.654364959230388 ns/iter 0.82
JSON_String_Key_Hash/100 1.8679192523638066 ns/iter 1.9792294657657667 ns/iter 0.94
JSON_Object_Defines_Miss_Same_Length 3.7347645891039507 ns/iter 3.7616571881495875 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 3.7629284398840355 ns/iter 3.7348564123095773 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 3.749916296014824 ns/iter 3.7422274293700606 ns/iter 1.00
Pointer_Object_Traverse 44.36205457360908 ns/iter 44.42984483164935 ns/iter 1.00
Pointer_Object_Try_Traverse 52.302139719684625 ns/iter 52.424037550013054 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 308.6135287412466 ns/iter 289.5113552066011 ns/iter 1.07

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 6.995751116071044 ns/iter 6.87245312499434 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 7.031860491072247 ns/iter 6.996374999995884 ns/iter 1.01
Regex_Period_Asterisk 6.843300223215364 ns/iter 7.043151785706772 ns/iter 0.97
Regex_Group_Period_Asterisk_Group 6.873309151785381 ns/iter 6.854569642858418 ns/iter 1.00
Regex_Period_Plus 7.429878984687879 ns/iter 7.43438281249707 ns/iter 1.00
Regex_Period 7.340235491071212 ns/iter 7.163812468017149 ns/iter 1.02
Regex_Caret_Period_Plus_Dollar 7.387419609877896 ns/iter 7.2721037946519935 ns/iter 1.02
Regex_Caret_Group_Period_Plus_Group_Dollar 7.465015624999539 ns/iter 7.36713616070972 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 7.1319196428566904 ns/iter 7.156600446427725 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 6.972650669642937 ns/iter 7.047915178566606 ns/iter 0.99
Regex_Caret_X_Hyphen 14.288012499999272 ns/iter 11.912745312500306 ns/iter 1.20
Regex_Period_Md_Dollar 152.0485044642734 ns/iter 149.58930803581032 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 10.536442187499162 ns/iter 10.834940625002787 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 7.665182108637299 ns/iter 7.787271393798248 ns/iter 0.98
Regex_Nested_Backtrack 610.7674999999517 ns/iter 617.2418749997632 ns/iter 0.99
JSON_Array_Of_Objects_Unique 487.7091071428197 ns/iter 486.89827638598916 ns/iter 1.00
JSON_Parse_1 82570.75892856847 ns/iter 81211.9084821055 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 70.25484821429221 ns/iter 66.90710714281067 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 190.56858844362353 ns/iter 183.64277792240526 ns/iter 1.04
JSON_String_Equal/10 9.010517370488584 ns/iter 8.98976785714061 ns/iter 1.00
JSON_String_Equal/100 9.933285223511742 ns/iter 9.91848879500475 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 2.196289375000049 ns/iter 2.1670853125016265 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.805275157119736 ns/iter 14.85454910715183 ns/iter 1.00
JSON_String_Fast_Hash/10 4.123141525220126 ns/iter 4.053623883924574 ns/iter 1.02
JSON_String_Fast_Hash/100 4.072259292986345 ns/iter 4.034561033990691 ns/iter 1.01
JSON_String_Key_Hash/10 7.93950334821452 ns/iter 7.782887276783462 ns/iter 1.02
JSON_String_Key_Hash/100 4.0281300964784865 ns/iter 4.026141212550132 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.719570886214957 ns/iter 3.717479212941019 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.957243749999967 ns/iter 4.953391000008196 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.4265671928539736 ns/iter 3.406648431413585 ns/iter 1.01
Pointer_Object_Traverse 49.07798214285362 ns/iter 50.040979999994306 ns/iter 0.98
Pointer_Object_Try_Traverse 68.6735379464208 ns/iter 67.54008928567146 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 164.6622275443421 ns/iter 179.99988705357302 ns/iter 0.91

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.072544721212451 ns/iter 2.026204661603368 ns/iter 1.02
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.039304335866101 ns/iter 2.0557444814705064 ns/iter 0.99
Regex_Period_Asterisk 2.0545502128911037 ns/iter 2.072147714081021 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.058277671101337 ns/iter 2.3141456612298805 ns/iter 0.89
Regex_Period_Plus 2.0642637456320854 ns/iter 2.0479396389069824 ns/iter 1.01
Regex_Period 2.04963699967362 ns/iter 2.0176757681333206 ns/iter 1.02
Regex_Caret_Period_Plus_Dollar 2.043248065804204 ns/iter 2.004273546452147 ns/iter 1.02
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0963689570369985 ns/iter 2.0364470298115527 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 2.2605565477013596 ns/iter 2.084475610800603 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.398005662652423 ns/iter 2.4282226925518855 ns/iter 0.99
Regex_Caret_X_Hyphen 6.59262759438007 ns/iter 6.444312136606807 ns/iter 1.02
Regex_Period_Md_Dollar 75.48042402018764 ns/iter 76.59141047831147 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 4.726193830971828 ns/iter 5.640058517456055 ns/iter 0.84
Regex_Caret_Period_Range_Dollar 2.0316470149352357 ns/iter 2.183401508555047 ns/iter 0.93
Regex_Nested_Backtrack 900.3170268847095 ns/iter 893.5818635176652 ns/iter 1.01
JSON_Array_Of_Objects_Unique 210.46122487728266 ns/iter 212.59116498832967 ns/iter 0.99
JSON_Parse_1 24950.04065405632 ns/iter 26159.877776402758 ns/iter 0.95
JSON_Fast_Hash_Helm_Chart_Lock 25.352924599247235 ns/iter 25.750001845006388 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 127.9827734007141 ns/iter 119.81589903272769 ns/iter 1.07
JSON_String_Equal/10 5.822334858705969 ns/iter 5.933745470328619 ns/iter 0.98
JSON_String_Equal/100 6.299689496068071 ns/iter 5.7331870677664165 ns/iter 1.10
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8333151501326479 ns/iter 0.8231414608203673 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.7848906155776896 ns/iter 3.7552263237605072 ns/iter 1.01
JSON_String_Fast_Hash/10 2.041943184051642 ns/iter 2.04934881617062 ns/iter 1.00
JSON_String_Fast_Hash/100 2.049580213554066 ns/iter 2.073956469169083 ns/iter 0.99
JSON_String_Key_Hash/10 1.5807596110427016 ns/iter 1.5834478244216128 ns/iter 1.00
JSON_String_Key_Hash/100 2.134471318696586 ns/iter 2.1584915382947343 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 1.8855192660611166 ns/iter 2.0954668525045217 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Small 2.061030186816725 ns/iter 2.0462044982975427 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 1.8936602629114017 ns/iter 1.8568784811239738 ns/iter 1.02
Pointer_Object_Traverse 57.77991640278821 ns/iter 58.72231027510378 ns/iter 0.98
Pointer_Object_Try_Traverse 40.16962446677111 ns/iter 40.52479275617672 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 171.67113906528516 ns/iter 172.8734237906307 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Benchmark suite Current: 47ba230 Previous: 9f78156 Ratio
Pointer_Object_Traverse 48.03019224244794 ns/iter 46.81195849922776 ns/iter 1.03
Pointer_Object_Try_Traverse 26.136744681560963 ns/iter 26.13433963312741 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 144.98362319757786 ns/iter 173.30767359115782 ns/iter 0.84
JSON_Array_Of_Objects_Unique 410.7506227646832 ns/iter 432.6945040873994 ns/iter 0.95
JSON_Parse_1 33420.46391605911 ns/iter 33582.36686049202 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 68.83477047080291 ns/iter 65.2511199128042 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 154.58043917263777 ns/iter 148.41844642547414 ns/iter 1.04
JSON_String_Equal/10 6.7978930156593895 ns/iter 6.3412105369757485 ns/iter 1.07
JSON_String_Equal/100 7.171017356805526 ns/iter 6.817942901666961 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9349613317532235 ns/iter 0.94117369329323 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.295632065225725 ns/iter 14.289036218353761 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9338732796908478 ns/iter 0.9339957645905962 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9339467657754295 ns/iter 0.9322254430938337 ns/iter 1.00
JSON_String_Key_Hash/10 1.6723905189303037 ns/iter 1.6719405689392688 ns/iter 1.00
JSON_String_Key_Hash/100 1.9834895756730795 ns/iter 1.9841756556886831 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4867422652191014 ns/iter 2.4886244264386645 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4863629511301357 ns/iter 2.4886526860485274 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1087380221838474 ns/iter 3.108697667460751 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.420543213244395 ns/iter 3.4190865914827304 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4251316918977426 ns/iter 3.4274842639242245 ns/iter 1.00
Regex_Period_Asterisk 3.4242692506087056 ns/iter 3.4201186263762757 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.41952834815594 ns/iter 3.4179188470109834 ns/iter 1.00
Regex_Period_Plus 3.730082674401297 ns/iter 3.7311810458302053 ns/iter 1.00
Regex_Period 3.7315606151759586 ns/iter 3.786127262932944 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 3.730942222589174 ns/iter 3.7448074688854947 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.80085404398802 ns/iter 3.4711532818795647 ns/iter 1.09
Regex_Caret_Period_Asterisk_Dollar 4.662832877790806 ns/iter 3.749350436011022 ns/iter 1.24
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.662991017729135 ns/iter 3.733129679791966 ns/iter 1.25
Regex_Caret_X_Hyphen 12.434052899923987 ns/iter 12.432056288371868 ns/iter 1.00
Regex_Period_Md_Dollar 88.79371675981096 ns/iter 88.8065383358503 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 8.095747486148447 ns/iter 8.082334089566555 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.662953061072123 ns/iter 4.668718467553509 ns/iter 1.00
Regex_Nested_Backtrack 834.2745165988551 ns/iter 828.3505585874228 ns/iter 1.01

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.