January 2018
Intermediate to advanced
374 pages
9h 53m
English
To evaluate the performance benefits, we'll utilize the following code, which compares 100'000'000 strings:
auto n = size_t{100'000'000};
auto a = std::vector<String>{};
auto b = std::vector<String>{};
auto c = std::vector<String>{};a.resize(n);b.resize(n);c.resize(n);
// {Fill the vectors with random strings...}
auto num_equal = 0;
for(size_t i = 0; i < n; ++i) {
num_equal += (a[i] + b[i] == c[i]) ? 1 : 0;
}
When executing this on an Intel i7 7700k CPU, we get the following results:
|
Comparison type |
Time (milliseconds) |
Speed up |
|
No proxy object |
675
|
1.00 x
|
|
With a proxy object |
62
|
10.7 x
|
In other words, the speed up with a proxy object is almost eleven times as fast, when we got rid of ...