January 2018
Intermediate to advanced
374 pages
9h 53m
English
Continuing the naive implementation, let's measure its performance with a naive performance evaluation compared to std::transform() at a single CPU core.
We measure two scenarios:
The following code processes a low number of elements with the expensive heavy_f transform function:
// Low number of elements - heavy transform function
auto heavy_f = [](float v) { auto sum = v; for (size_t i = 0; i < 100'000'000; ++i) { sum += (i*i*i*sum); } return sum;
};
auto measure_heavy() {
auto n = 32;
auto src = std::vector<float>(n); auto dst = std::vector<float>(n); std::transform(src.begin(), ...