@@ -12,6 +12,7 @@ Sources:
1212
1313### Design
1414
15+ * Zero allocations (vectorized PRNGs may allocate during constructions since they may be buffered, see Shishua)
1516* Implemented as ` struct ` s - cache locality
1617* Inline as much as possible - no virtual calls/indirection (and if something isn't inlined, the above also helps)
1718* No abstraction - interfaces etc, makes it easier to not invalidate the above
@@ -23,18 +24,21 @@ Sources:
2324dotnet test -c Release --logger:"console;verbosity=detailed"
2425```
2526
27+ Plotly diagrams are generated during tests where distritution is compared to ` System.Random ` as a baseline.
28+ The goal is for the implemented PRNGs to match the (uniform) distribution of ` System.Random ` .
29+
2630### Initial benchmarks
2731
2832The benchmarks measure generation of ` double ` s.
2933Iterations = ` double ` s per op.
3034
31- #### With hardware counters
35+ There is likely overhead in capturing hardware counters, so these should be more "correct"
3236
33- ![ With hardware counters ] ( /img/perf-hardwarecounters .png " With hardware counters ")
37+ ![ Scaling iterations ] ( /img/perf-scaling .png " Scaling iterations ")
3438
35- #### Scaling iterations
39+ #### With hardware counters
3640
37- There is likely overhead in capturing hardware counters, so these should be more "correct"
41+ Instrumented with more diagnostics, including hardware counters
3842
39- ![ Scaling iterations ] ( /img/perf-scaling .png " Scaling iterations ")
43+ ![ With hardware counters ] ( /img/perf-hardwarecounters .png " With hardware counters ")
4044
0 commit comments