Skip to content

Instantly share code, notes, and snippets.

@ryanmr
Last active January 3, 2016 22:04
Show Gist options
  • Save ryanmr/8d60c90fed0e63dec352 to your computer and use it in GitHub Desktop.
Save ryanmr/8d60c90fed0e63dec352 to your computer and use it in GitHub Desktop.
ryan@server2:~/Go/src/github.com/ryanmr/wargame-go$ $GOPATH/bin/wargame-go 
WarGame Go
4. done | et = 10s; g = 128691; s = 12.81850 g/ms; t = 875; 3;  
---

Samples: 875 collected
Mean: 12.82404
Standard Deviation: 0.10184
Coefficient of Variation: 0.00794
Min-Max:	 < 12.67994 - 13.14618 > Δ 0.46624
1-σ:		 < 12.72219 - 12.92588 > Δ 0.20369
99.9% CI:	 < 12.81271 - 12.83537 > Δ 0.02266
---

Threads: 8
Speed: 12.81852
Total Games: 128693
Elapsed Time: 10 seconds
Rank Passes: 1%cov, 1σ, 99.9%CI

Score: 13 A

What do you think of this? Some statistics and a new score-ranking.

Note: Usually the benchmark will run for 10 seconds during priming time, when samples are not collected, but the timers and counters are primed so they avoid initialization jitter. After that, samples are collected every 5 milliseconds for 60 seconds. No more arbitrary testing times!

The rank letter is determined by meeting fairly arbirtrary statistical criteria. For each criteria passed, you earn a rank letter, starting from D.

  • D = 0
  • C = 1
  • B = 2
  • A = 3

Here is the criteria and a brief explaination:

  1. 1% COV: Coefficient of Variation (COV) is standard_deviation / mean. This passes if the COV is less than 1, which should mean that the standard deviation is less than 1% of the mean. In my testing so far, this is fairly easy to meet.
  2. 1-sigma: 1-sigma is +/- 1 standard deviation from the mean. This passes if the speed is within 1 standard deviation of the mean. This usually passes, but it is less common than 1% COV.
  3. 99.9% CI:: The 99.9% CI represents where the true mean might truly lie. This passes if the speed is within in the interval defined by the T-interval: mean +/- 3.291 * stdev/sqrt(n). This is fairly rare, and in fact, the output above miraculously offers me a chance to show you.

Do these criterion sound relevent? Are there any other major criteria I should add? I could add an S rank, or an F rank if required.

Any questions on the output? Is it clear?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment