#include #include #include "common.h" using namespace bench; using namespace alsk::arg; constexpr unsigned samples = 50, iterations = 100; constexpr unsigned n = 100, vecSize = 100; void hwLoop() { for(std::size_t i = 0; i < n; ++i) taskV(); } constexpr auto eLoop = seq(n * eTaskV); constexpr auto eLoopStdFun = seq(n * eTaskVStdFun); BASELINE(Loop, Handwritten, samples, iterations) { hwLoop(); } BENCHMARK(Loop, Skeleton, samples, iterations) { auto loop = alsk::edsl::implement(eLoop); loop(); } BENCHMARK(Loop, SkeletonStdFunction, samples, iterations) { auto loop = alsk::edsl::implement(eLoopStdFun); loop.skeleton.task = taskV; loop(); }