From 0e7ecaef7abf496d32322288ed018109507d5bbd Mon Sep 17 00:00:00 2001 From: mratsim Date: Mon, 26 Mar 2018 12:50:50 +0200 Subject: [PATCH] Add bench of modulo op --- benchmarks/bench_mod.nim | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 benchmarks/bench_mod.nim diff --git a/benchmarks/bench_mod.nim b/benchmarks/bench_mod.nim new file mode 100644 index 0000000..8cf3ecd --- /dev/null +++ b/benchmarks/bench_mod.nim @@ -0,0 +1,33 @@ +import ../src/mpint, times + + +# Warmup on normal int +var start = cpuTime() +block: + var foo = 123 + for i in 0 ..< 10_000_000: + foo += i*i mod 456 + foo = foo mod 789 + +# Compiler shouldn't optimize away the results as cpuTime rely on sideeffects +var stop = cpuTime() +echo "Warmup: " & $(stop - start) & "s" + +#################################### + + +start = cpuTime() +block: + var foo = 123.initMpUint(64) + for i in 0 ..< 10_000_000: + let i2 = i.initMpUint(64) + foo += i2 * i2 mod 456.initMpUint(64) + foo = foo mod 789.initMpUint(64) + +stop = cpuTime() +echo "Library: " & $(stop - start) & "s" + +# On my i5-5257 broadwell with the flags: +# nim c -d:release -d:mpint_test +# Warmup: 0.040888s +# Library: 5.838267s