Commit 112ec135 authored by Christopher Dykes's avatar Christopher Dykes Committed by Facebook Github Bot

Add an sfmt19937 benchmark (again)

Summary: `__gnu_cxx::sfmt19937` is 3.5x faster than `std::mt19937` according to the benchmark.

Reviewed By: yfeldblum

Differential Revision: D5410705

fbshipit-source-id: d503544a0b9b1b0c614a27466a297a4e6902fc15
parent 6678c4e6
......@@ -24,6 +24,10 @@
#include <folly/Benchmark.h>
#include <folly/Foreach.h>
#if FOLLY_HAVE_EXTRANDOM_SFMT19937
#include <ext/random>
#endif
using namespace folly;
BENCHMARK(minstdrand, n) {
......@@ -46,6 +50,18 @@ BENCHMARK(mt19937, n) {
FOR_EACH_RANGE(i, 0, n) { doNotOptimizeAway(rng()); }
}
#if FOLLY_HAVE_EXTRANDOM_SFMT19937
BENCHMARK(sfmt19937, n) {
BenchmarkSuspender braces;
std::random_device rd;
__gnu_cxx::sfmt19937 rng(rd());
braces.dismiss();
FOR_EACH_RANGE(i, 0, n) { doNotOptimizeAway(rng()); }
}
#endif
BENCHMARK(threadprng, n) {
BenchmarkSuspender braces;
ThreadLocalPRNG tprng;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment