Skip to content

Commit

Permalink
Implement a .reidentify() method on FlatFileSchemaResolver (#1420)
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti authored Jan 2, 2025
1 parent 939dc0c commit 16e66cd
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ class SOURCEMETA_JSONTOOLKIT_JSONSCHEMA_EXPORT FlatFileSchemaResolver {
const std::optional<std::string> &default_id = std::nullopt)
-> const std::string &;

// Change the identifier of a registered schema
auto reidentify(const std::string &schema, const std::string &new_identifier)
-> void;

/// Attempt to resolve a schema
auto operator()(std::string_view identifier) const -> std::optional<JSON>;

Expand All @@ -139,8 +143,8 @@ class SOURCEMETA_JSONTOOLKIT_JSONSCHEMA_EXPORT FlatFileSchemaResolver {

/// Represent an entry in the resolver
struct Entry {
const std::filesystem::path path;
const std::optional<std::string> default_dialect;
std::filesystem::path path;
std::optional<std::string> default_dialect;
};

private:
Expand Down
9 changes: 9 additions & 0 deletions src/jsonschema/resolver.cc
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,15 @@ auto FlatFileSchemaResolver::add(
return result.first->first;
}

auto FlatFileSchemaResolver::reidentify(const std::string &schema,
const std::string &new_identifier)
-> void {
const auto result{this->schemas.find(schema)};
assert(result != this->schemas.cend());
this->schemas.insert_or_assign(new_identifier, std::move(result->second));
this->schemas.erase(result);
}

auto FlatFileSchemaResolver::operator()(std::string_view identifier) const
-> std::optional<JSON> {
const std::string string_identifier{identifier};
Expand Down
27 changes: 27 additions & 0 deletions test/jsonschema/jsonschema_flat_file_resolver_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -169,3 +169,30 @@ TEST(JSONSchema_FlatFileSchemaResolver, iterators) {
EXPECT_EQ(entries.at(0).path, schema_path);
EXPECT_FALSE(entries.at(0).default_dialect.has_value());
}

TEST(JSONSchema_FlatFileSchemaResolver, reidentify) {
sourcemeta::jsontoolkit::FlatFileSchemaResolver resolver;
const auto schema_path{std::filesystem::path{SCHEMAS_PATH} /
"2020-12-id.json"};
const auto &identifier{resolver.add(schema_path)};
EXPECT_EQ(identifier, "https://www.sourcemeta.com/2020-12-id.json");
EXPECT_TRUE(
resolver("https://www.sourcemeta.com/2020-12-id.json").has_value());
EXPECT_EQ(resolver("https://www.sourcemeta.com/2020-12-id.json").value(),
sourcemeta::jsontoolkit::from_file(schema_path));

resolver.reidentify("https://www.sourcemeta.com/2020-12-id.json",
"https://example.com");

EXPECT_FALSE(
resolver("https://www.sourcemeta.com/2020-12-id.json").has_value());
EXPECT_TRUE(resolver("https://example.com").has_value());

const sourcemeta::jsontoolkit::JSON expected =
sourcemeta::jsontoolkit::parse(R"JSON({
"$id": "https://example.com",
"$schema": "https://json-schema.org/draft/2020-12/schema"
})JSON");

EXPECT_EQ(resolver("https://example.com").value(), expected);
}

8 comments on commit 16e66cd

@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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 347.0554780316242 ns/iter 334.9668861960089 ns/iter 1.04
JSON_Parse_1 22638.849986968296 ns/iter 21675.25886006895 ns/iter 1.04
JSON_Fast_Hash_Helm_Chart_Lock 51.110045800010084 ns/iter 47.96518118216849 ns/iter 1.07
JSON_Equality_Helm_Chart_Lock 144.61305727887787 ns/iter 135.63471413467443 ns/iter 1.07
Regex_Lower_S_Or_Upper_S_Asterisk 1.6810777406355266 ns/iter 1.5673808243278209 ns/iter 1.07
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5916016703491223 ns/iter 1.5727047540483998 ns/iter 1.01
Regex_Period_Asterisk 1.5834216722180052 ns/iter 1.6044105274597174 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 1.5766733299629296 ns/iter 1.618371194961534 ns/iter 0.97
Regex_Period_Plus 1.882266665233375 ns/iter 1.8950036545244069 ns/iter 0.99
Regex_Period 1.8814265293764538 ns/iter 1.8908389137696424 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.992141380457029 ns/iter 2.007281944981985 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9710339580902094 ns/iter 1.9191679796812238 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 1.570604987312905 ns/iter 1.5790151831352848 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5685386894784403 ns/iter 1.5730021439078072 ns/iter 1.00
Regex_Caret_X_Hyphen 6.396843131086928 ns/iter 6.275420166096332 ns/iter 1.02
Regex_Period_Md_Dollar 67.65984711812888 ns/iter 67.45570223758152 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.979649169998993 ns/iter 7.185263754367611 ns/iter 0.83
Regex_Caret_Period_Range_Dollar 2.0716744090672874 ns/iter 2.0418463347368334 ns/iter 1.01
Regex_Nested_Backtrack 728.6258482262003 ns/iter 726.1288386356497 ns/iter 1.00
Pointer_Object_Traverse 14.737232559411767 ns/iter 15.442337330556995 ns/iter 0.95
Pointer_Object_Try_Traverse 31.457574490937102 ns/iter 34.91100197625457 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.78576812079845 ns/iter 173.88661492634301 ns/iter 1.02

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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 442.89174528482215 ns/iter 439.43729198195905 ns/iter 1.01
JSON_Parse_1 30407.77444651539 ns/iter 30314.861470919324 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 56.36802068730365 ns/iter 54.714372682895444 ns/iter 1.03
JSON_Equality_Helm_Chart_Lock 150.22172101224106 ns/iter 151.0873094051099 ns/iter 0.99
Regex_Lower_S_Or_Upper_S_Asterisk 2.182543026167536 ns/iter 2.4876997012364814 ns/iter 0.88
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1858976943464365 ns/iter 2.2231219648789775 ns/iter 0.98
Regex_Period_Asterisk 2.1841033885250174 ns/iter 2.2895610733920053 ns/iter 0.95
Regex_Group_Period_Asterisk_Group 2.1872437744200206 ns/iter 2.2105928915001707 ns/iter 0.99
Regex_Period_Plus 2.4884371094641455 ns/iter 2.8003888937184382 ns/iter 0.89
Regex_Period 2.488881697792676 ns/iter 2.4900317790093447 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.4934813196937804 ns/iter 2.4904943826462054 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 2.489067196175402 ns/iter 2.4938789227236797 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.4175313556562767 ns/iter 3.4243704638764703 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.422041965831563 ns/iter 3.4185108689090247 ns/iter 1.00
Regex_Caret_X_Hyphen 12.4820868163409 ns/iter 13.055032100427397 ns/iter 0.96
Regex_Period_Md_Dollar 73.59402932946406 ns/iter 74.79770526953382 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 7.152758881276115 ns/iter 7.148907404731239 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 3.72995403470414 ns/iter 3.7280638081431334 ns/iter 1.00
Regex_Nested_Backtrack 492.44280022648604 ns/iter 494.81069192052297 ns/iter 1.00
Pointer_Object_Traverse 44.83391930419059 ns/iter 44.908164042966696 ns/iter 1.00
Pointer_Object_Try_Traverse 52.6140682083423 ns/iter 52.39832755454307 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 352.36817432742146 ns/iter 352.27074595814383 ns/iter 1.00

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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 414.2140484726232 ns/iter 414.6764308646799 ns/iter 1.00
JSON_Parse_1 81442.61160714093 ns/iter 81472.12053571147 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 57.45514285713682 ns/iter 58.118035714289 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 214.92414442303868 ns/iter 218.89637500002834 ns/iter 0.98
Regex_Lower_S_Or_Upper_S_Asterisk 8.166579241070592 ns/iter 8.32509103426292 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 8.052149999999259 ns/iter 7.926013357471793 ns/iter 1.02
Regex_Period_Asterisk 7.777829429563298 ns/iter 7.8114866071426245 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 8.030310267856626 ns/iter 7.770339285714404 ns/iter 1.03
Regex_Period_Plus 7.788887911657644 ns/iter 7.836621651785082 ns/iter 0.99
Regex_Period 7.879142375539431 ns/iter 8.33912406991506 ns/iter 0.94
Regex_Caret_Period_Plus_Dollar 7.866082589285435 ns/iter 7.861262276785805 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 8.212369419642634 ns/iter 8.103453981681273 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 9.096601298676404 ns/iter 7.828225411482289 ns/iter 1.16
Regex_Caret_Group_Period_Asterisk_Group_Dollar 7.798684786612773 ns/iter 8.179553534913751 ns/iter 0.95
Regex_Caret_X_Hyphen 11.554510714284609 ns/iter 11.545326785715863 ns/iter 1.00
Regex_Period_Md_Dollar 142.19205838429835 ns/iter 142.18623249169315 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 11.797180357143183 ns/iter 11.77340312499986 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 8.709149961119731 ns/iter 8.993442187499312 ns/iter 0.97
Regex_Nested_Backtrack 593.2685714285973 ns/iter 593.8126785714815 ns/iter 1.00
Pointer_Object_Traverse 55.99762499999527 ns/iter 55.97514285713804 ns/iter 1.00
Pointer_Object_Try_Traverse 75.98503348213676 ns/iter 76.17542857142367 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.73585781713473 ns/iter 196.66123452403176 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/gcc)

Benchmark suite Current: 16e66cd Previous: 939dc0c Ratio
Pointer_Object_Traverse 44.26030977954227 ns/iter 44.57744719182455 ns/iter 0.99
Pointer_Object_Try_Traverse 22.421068239537806 ns/iter 22.406755812145676 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 213.71185914237566 ns/iter 213.16837429196704 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.134634450964185 ns/iter 2.486542228633366 ns/iter 1.26
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1318825219285036 ns/iter 2.487179966664344 ns/iter 1.26
Regex_Period_Asterisk 3.1300207659509796 ns/iter 2.519255064357063 ns/iter 1.24
Regex_Group_Period_Asterisk_Group 3.1398070314898052 ns/iter 2.4963794603743463 ns/iter 1.26
Regex_Period_Plus 3.12089436118185 ns/iter 2.802420716718299 ns/iter 1.11
Regex_Period 3.1281088823804986 ns/iter 2.813533651951125 ns/iter 1.11
Regex_Caret_Period_Plus_Dollar 3.124787969768082 ns/iter 2.7981272735388214 ns/iter 1.12
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1270645564350628 ns/iter 2.799768399801086 ns/iter 1.12
Regex_Caret_Period_Asterisk_Dollar 3.7311714975262307 ns/iter 3.7291638387557513 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.149551780975748 ns/iter 3.7274904304475016 ns/iter 0.84
Regex_Caret_X_Hyphen 12.431364729117393 ns/iter 12.431013003903681 ns/iter 1.00
Regex_Period_Md_Dollar 90.57833009058069 ns/iter 87.92008855518328 ns/iter 1.03
Regex_Caret_Slash_Period_Asterisk 6.228970265983795 ns/iter 7.155016215668425 ns/iter 0.87
Regex_Caret_Period_Range_Dollar 4.039857918354917 ns/iter 4.045503578472615 ns/iter 1.00
Regex_Nested_Backtrack 813.3857991678001 ns/iter 816.7103453092392 ns/iter 1.00
JSON_Array_Of_Objects_Unique 379.30379497841113 ns/iter 381.72590451780735 ns/iter 0.99
JSON_Parse_1 32778.59409767924 ns/iter 32926.812055074304 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 62.51174065702733 ns/iter 62.787174076302854 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 142.95106499051593 ns/iter 142.95499697299994 ns/iter 1.00

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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 439.97843125580846 ns/iter 414.6764308646799 ns/iter 1.06
JSON_Parse_1 86810.15133253469 ns/iter 81472.12053571147 ns/iter 1.07
JSON_Fast_Hash_Helm_Chart_Lock 56.89972999999782 ns/iter 58.118035714289 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 234.44159374999884 ns/iter 218.89637500002834 ns/iter 1.07
Regex_Lower_S_Or_Upper_S_Asterisk 8.929441031565641 ns/iter 8.32509103426292 ns/iter 1.07
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 7.929005321745428 ns/iter 7.926013357471793 ns/iter 1.00
Regex_Period_Asterisk 8.067330357142767 ns/iter 7.8114866071426245 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 7.84424441964328 ns/iter 7.770339285714404 ns/iter 1.01
Regex_Period_Plus 8.034847731986886 ns/iter 7.836621651785082 ns/iter 1.03
Regex_Period 7.877407366071612 ns/iter 8.33912406991506 ns/iter 0.94
Regex_Caret_Period_Plus_Dollar 8.125233258929095 ns/iter 7.861262276785805 ns/iter 1.03
Regex_Caret_Group_Period_Plus_Group_Dollar 8.186296875000007 ns/iter 8.103453981681273 ns/iter 1.01
Regex_Caret_Period_Asterisk_Dollar 8.239706473214575 ns/iter 7.828225411482289 ns/iter 1.05
Regex_Caret_Group_Period_Asterisk_Group_Dollar 8.336635677068307 ns/iter 8.179553534913751 ns/iter 1.02
Regex_Caret_X_Hyphen 12.161824499276952 ns/iter 11.545326785715863 ns/iter 1.05
Regex_Period_Md_Dollar 145.74046875000283 ns/iter 142.18623249169315 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 11.535155357143319 ns/iter 11.77340312499986 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 8.703137907574638 ns/iter 8.993442187499312 ns/iter 0.97
Regex_Nested_Backtrack 593.8169642857158 ns/iter 593.8126785714815 ns/iter 1.00
Pointer_Object_Traverse 56.34542857143694 ns/iter 55.97514285713804 ns/iter 1.01
Pointer_Object_Try_Traverse 76.24186383929604 ns/iter 76.17542857142367 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 181.24099651167313 ns/iter 196.66123452403176 ns/iter 0.92

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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 334.78911762452213 ns/iter 334.9668861960089 ns/iter 1.00
JSON_Parse_1 21334.131343576417 ns/iter 21675.25886006895 ns/iter 0.98
JSON_Fast_Hash_Helm_Chart_Lock 49.16698021640305 ns/iter 47.96518118216849 ns/iter 1.03
JSON_Equality_Helm_Chart_Lock 140.25525054753484 ns/iter 135.63471413467443 ns/iter 1.03
Regex_Lower_S_Or_Upper_S_Asterisk 1.5671186552599168 ns/iter 1.5673808243278209 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5789722906608812 ns/iter 1.5727047540483998 ns/iter 1.00
Regex_Period_Asterisk 1.789275723592215 ns/iter 1.6044105274597174 ns/iter 1.12
Regex_Group_Period_Asterisk_Group 1.576536627262247 ns/iter 1.618371194961534 ns/iter 0.97
Regex_Period_Plus 2.0543490345555355 ns/iter 1.8950036545244069 ns/iter 1.08
Regex_Period 1.8989788051477159 ns/iter 1.8908389137696424 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.8993088161357106 ns/iter 2.007281944981985 ns/iter 0.95
Regex_Caret_Group_Period_Plus_Group_Dollar 1.8981785176258545 ns/iter 1.9191679796812238 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 1.5760333282378687 ns/iter 1.5790151831352848 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5829595761755584 ns/iter 1.5730021439078072 ns/iter 1.01
Regex_Caret_X_Hyphen 6.313721402418762 ns/iter 6.275420166096332 ns/iter 1.01
Regex_Period_Md_Dollar 67.89963623684277 ns/iter 67.45570223758152 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 6.731995979847379 ns/iter 7.185263754367611 ns/iter 0.94
Regex_Caret_Period_Range_Dollar 2.059469095130364 ns/iter 2.0418463347368334 ns/iter 1.01
Regex_Nested_Backtrack 738.7008692913683 ns/iter 726.1288386356497 ns/iter 1.02
Pointer_Object_Traverse 16.909531927793754 ns/iter 15.442337330556995 ns/iter 1.10
Pointer_Object_Try_Traverse 32.4261222750035 ns/iter 34.91100197625457 ns/iter 0.93
Pointer_Push_Back_Pointer_To_Weak_Pointer 174.43094317138178 ns/iter 173.88661492634301 ns/iter 1.00

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: 16e66cd Previous: 939dc0c Ratio
JSON_Array_Of_Objects_Unique 447.66520367185745 ns/iter 439.43729198195905 ns/iter 1.02
JSON_Parse_1 30251.57244213812 ns/iter 30314.861470919324 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 54.64601006541843 ns/iter 54.714372682895444 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 149.58393090647078 ns/iter 151.0873094051099 ns/iter 0.99
Regex_Lower_S_Or_Upper_S_Asterisk 2.200158840817654 ns/iter 2.4876997012364814 ns/iter 0.88
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1811356928147183 ns/iter 2.2231219648789775 ns/iter 0.98
Regex_Period_Asterisk 2.201214575926632 ns/iter 2.2895610733920053 ns/iter 0.96
Regex_Group_Period_Asterisk_Group 2.216045958713959 ns/iter 2.2105928915001707 ns/iter 1.00
Regex_Period_Plus 2.244878844220564 ns/iter 2.8003888937184382 ns/iter 0.80
Regex_Period 2.261169073222483 ns/iter 2.4900317790093447 ns/iter 0.91
Regex_Caret_Period_Plus_Dollar 2.2661915249759224 ns/iter 2.4904943826462054 ns/iter 0.91
Regex_Caret_Group_Period_Plus_Group_Dollar 2.2603063315400305 ns/iter 2.4938789227236797 ns/iter 0.91
Regex_Caret_Period_Asterisk_Dollar 2.487120680708214 ns/iter 3.4243704638764703 ns/iter 0.73
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.4865028776082605 ns/iter 3.4185108689090247 ns/iter 0.73
Regex_Caret_X_Hyphen 7.461329389148237 ns/iter 13.055032100427397 ns/iter 0.57
Regex_Period_Md_Dollar 74.11868915665042 ns/iter 74.79770526953382 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 7.145345089989452 ns/iter 7.148907404731239 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 3.7244037623666104 ns/iter 3.7280638081431334 ns/iter 1.00
Regex_Nested_Backtrack 492.89612697866085 ns/iter 494.81069192052297 ns/iter 1.00
Pointer_Object_Traverse 45.650367825891664 ns/iter 44.908164042966696 ns/iter 1.02
Pointer_Object_Try_Traverse 52.21074023036143 ns/iter 52.39832755454307 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 353.8390478493588 ns/iter 352.27074595814383 ns/iter 1.00

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: 16e66cd Previous: 939dc0c Ratio
Pointer_Object_Traverse 46.72869247972302 ns/iter 44.57744719182455 ns/iter 1.05
Pointer_Object_Try_Traverse 22.42281395275975 ns/iter 22.406755812145676 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 213.1276868115032 ns/iter 213.16837429196704 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.124726224897788 ns/iter 2.486542228633366 ns/iter 1.26
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1340321782658807 ns/iter 2.487179966664344 ns/iter 1.26
Regex_Period_Asterisk 3.1432972943424278 ns/iter 2.519255064357063 ns/iter 1.25
Regex_Group_Period_Asterisk_Group 3.1301289854032373 ns/iter 2.4963794603743463 ns/iter 1.25
Regex_Period_Plus 3.1242674036195486 ns/iter 2.802420716718299 ns/iter 1.11
Regex_Period 3.126393244408423 ns/iter 2.813533651951125 ns/iter 1.11
Regex_Caret_Period_Plus_Dollar 3.1261821865256976 ns/iter 2.7981272735388214 ns/iter 1.12
Regex_Caret_Group_Period_Plus_Group_Dollar 3.126988682397506 ns/iter 2.799768399801086 ns/iter 1.12
Regex_Caret_Period_Asterisk_Dollar 3.72920273657548 ns/iter 3.7291638387557513 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.589990857045418 ns/iter 3.7274904304475016 ns/iter 0.96
Regex_Caret_X_Hyphen 12.43338893722167 ns/iter 12.431013003903681 ns/iter 1.00
Regex_Period_Md_Dollar 89.96237420154176 ns/iter 87.92008855518328 ns/iter 1.02
Regex_Caret_Slash_Period_Asterisk 6.219499606530663 ns/iter 7.155016215668425 ns/iter 0.87
Regex_Caret_Period_Range_Dollar 3.1732187403859444 ns/iter 4.045503578472615 ns/iter 0.78
Regex_Nested_Backtrack 816.2189365544923 ns/iter 816.7103453092392 ns/iter 1.00
JSON_Array_Of_Objects_Unique 378.6682252693765 ns/iter 381.72590451780735 ns/iter 0.99
JSON_Parse_1 32605.412195353118 ns/iter 32926.812055074304 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 66.7538971245688 ns/iter 62.787174076302854 ns/iter 1.06
JSON_Equality_Helm_Chart_Lock 143.02210425039226 ns/iter 142.95499697299994 ns/iter 1.00

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

Please sign in to comment.