Skip to content

Commit dcac59b

Browse files
authored
The benchmarking code was flawed because it was accidentally copying the strings. We definitively do not want to do that ! (#35)
1 parent 5dd8b27 commit dcac59b

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

benchmarks/bench.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ std::string url_examples[] = {
3131

3232
double url_examples_bytes = []() {
3333
size_t bytes{0};
34-
for(std::string url_string : url_examples) { bytes += url_string.size(); }
34+
for(std::string& url_string : url_examples) { bytes += url_string.size(); }
3535
return bytes;
3636
}();
3737

@@ -44,7 +44,7 @@ static void BasicBench_BoostURL(benchmark::State& state) {
4444
volatile size_t numbers_of_parameters = 0;
4545

4646
for (auto _ : state) {
47-
for(std::string url_string : url_examples) {
47+
for(std::string& url_string : url_examples) {
4848
url_view uv(url_string);
4949
numbers_of_parameters += uv.params().size();
5050
}
@@ -67,7 +67,7 @@ static void BasicBench_CURL(benchmark::State& state) {
6767
volatile bool is_valid{true};
6868
CURLU *url = curl_url();
6969
for (auto _ : state) {
70-
for(std::string url_string : url_examples) {
70+
for(std::string& url_string : url_examples) {
7171
CURLUcode rc = curl_url_set(url, CURLUPART_URL, url_string.c_str(), 0);
7272
if(rc) { is_valid = false; }
7373
}
@@ -88,7 +88,7 @@ static void BasicBench_uriparser(benchmark::State& state) {
8888
const char * errorPos;
8989
UriUriA uri;
9090
for (auto _ : state) {
91-
for(std::string url_string : url_examples) {
91+
for(std::string& url_string : url_examples) {
9292
is_valid &= (uriParseSingleUriA(&uri, url_string.c_str(), &errorPos) == URI_SUCCESS);
9393
}
9494
}
@@ -106,7 +106,7 @@ static void BasicBench_urlparser(benchmark::State& state) {
106106
const char * errorPos;
107107
UriUriA uri;
108108
for (auto _ : state) {
109-
for(std::string url_string : url_examples) {
109+
for(std::string& url_string : url_examples) {
110110
std::unique_ptr<EdUrlParser> url(EdUrlParser::parseUrl(url_string));
111111
}
112112
}
@@ -121,7 +121,7 @@ static void BasicBench_http_parser(benchmark::State& state) {
121121
struct http_parser_url u;
122122
http_parser_url_init(&u);
123123
for (auto _ : state) {
124-
for(std::string url_string : url_examples) {
124+
for(std::string& url_string : url_examples) {
125125
is_valid &= !http_parser_parse_url(url_string.data(), url_string.size(), 0, &u);
126126
}
127127
}
@@ -136,7 +136,7 @@ static void BasicBench_AdaURL(benchmark::State& state) {
136136
// volatile to prevent optimizations.
137137
volatile bool is_valid = true;
138138
for (auto _ : state) {
139-
for(std::string url_string : url_examples) {
139+
for(std::string& url_string : url_examples) {
140140
auto url = ada::parser::parse_url(url_string, std::nullopt);
141141
is_valid &= url.is_valid;
142142
}

0 commit comments

Comments
 (0)