From b0a75b45a6d99e73472906cc668d1c7804f5147b Mon Sep 17 00:00:00 2001 From: Luke Gorrie Date: Sat, 8 Oct 2016 16:32:12 +0000 Subject: [PATCH 1/2] Added bench/roulette.lua This benchmark exhibits non-deterministic performance. --- bench/roulette.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 bench/roulette.lua diff --git a/bench/roulette.lua b/bench/roulette.lua new file mode 100644 index 0000000..77c9fbb --- /dev/null +++ b/bench/roulette.lua @@ -0,0 +1,20 @@ +-- Russian Roulette simulator +-- This benchmark includes randomness from an external source that can +-- produce non-deterministic performance. +-- See https://github.com/LuaJIT/LuaJIT/issues/218 + +math.randomseed(os.time()) + +local population = 100e6 +local live = 0 +local die = 0 + +for i = 1, population do + if math.random(6) == 6 then + die = die + 1 + else + live = live + 1 + end +end + +print(("Survived %d/%d (%.3f%%)"):format(live, population, live*100/(live+die))) From a71cd6d99cac83d71730860ca94b901385d6c46d Mon Sep 17 00:00:00 2001 From: Luke Gorrie Date: Sun, 9 Oct 2016 08:59:43 +0000 Subject: [PATCH 2/2] roulette: Stop seeding the random number generator The test harness shuold do this in some suitable way e.g. with values that are reproducible but still contain entropy for the JIT. --- bench/roulette.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bench/roulette.lua b/bench/roulette.lua index 77c9fbb..968d42a 100644 --- a/bench/roulette.lua +++ b/bench/roulette.lua @@ -3,7 +3,8 @@ -- produce non-deterministic performance. -- See https://github.com/LuaJIT/LuaJIT/issues/218 -math.randomseed(os.time()) +-- (Let the test harness determine the random seed) +-- math.randomseed(os.time()) local population = 100e6 local live = 0