On my random actions benchmarks (this resembles real allocation patterns somewhat better?):
- 1 thread: Talc is faster than Frusa and System, Frusa is comparable to System
- 4 threads: System is fastest, Frusa does about ~half as well, Talc does ~half as well as Frusa
Our benchmarks agree on the Frusa vs Talc comparison.
Benchmarks aside, Frusa seems neat. In particular, I had some misconceptions about how to tackle concurrency in Talc which Frusa's code demonstrates not to be true. I may give writing a concurrent version of Talc another shot soon.
I'm changing up my random-actions benchmark to display results over various allocation sizes, as some allocators do much better than others at different sizes. As a heads up, Frusa takes a large hit at higher allocation sizes. Perhaps tuning bucket sizes or something could help? I'll try to have the benchmarks on GitHub this weekend so you can play around with them, if you'd like to investigate.