Код: Выделить всё
#include
#include
#if defined(__GNUC__) || defined(__clang__)
#define PREFETCH(addr, hint) __builtin_prefetch(addr, 0, hint)
#elif defined(_MSC_VER)
#include
#define PREFETCH(addr, hint) _mm_prefetch(reinterpret_cast(addr), hint)
#else
#define PREFETCH(addr, hint)
#endif
class PrefetchBenchmark : public benchmark::Fixture {
public:
static constexpr size_t data_size = 1
Однако эталон работает последовательно медленно с предварительной перефшированием < /p>
PrefetchBenchmark/NoPrefetch 348484 ns 344905 ns 1948
PrefetchBenchmark/WithPrefetch 595119 ns 585938 ns 1120
Подробнее здесь: https://stackoverflow.com/questions/795 ... tch-slower