[REF] Memory Allocator Benchmark
This one will be of more interest to kernel developers.
Link to Spreadsheet: Results
RcrdBrt asked me to see which memory allocator performed best, and provided me with four identical kernels except for the allocators being SLQB, SLAB, SLUB, and SLOB.
SLUB turns out to have a slight performance advantage, as RcrdBrt had suspected.
The rank was:
SLUB - 980.56
SLQB - 972.17
SLAB - 967.72
SLOB - 967.72
Not much difference really, but every little helps, as they say at Tesco (Britain's leading super market/Religion).
Thanks to RcrdBrt for trusting me with this nice little study, and to Chainfire for the very useful benchmarking app. (See here)
Methodology
Technical detail (it's not necessary to read this!)
I used CF-Bench to obtain values for:
Native MALLOCS
Native Mem Read
Native Mem Write
Java Mem Read
Java Mem Write
...and used statistical methods to boil 10 passes for each allocator down to one final score: 10 passes is enough to get the mean and median within one percent of each other, i.e. establishes a confidence in the mean, assuming normally distributed data. Three standard deviations are subtracted from the mean, to show the minimum score we'd expect 99.7% of results to be above. This is to penalize variability (high peaks are less significant than a good consistency). The geometric mean is taken of the five end results to provide one final score.
For various benchmarks, see my threads: > here<
|