genaray / ZeroAllocJobScheduler

A high-performance alloc free c# Jobscheduler.
Apache License 2.0
164 stars 14 forks source link

Real-World Benchmarks #18

Open LilithSilver opened 1 year ago

LilithSilver commented 1 year ago

I'd like to have some sort of real-world benchmarks. Currently, we just have some micro-benchmarks of varying quality.

Here's some research on the topic from more general schedulers...

There is an issue with these research approaches: none of them are focused around what this job scheduler is really for (for use in Arch and more generally in games and game-like applications). I'm not sure how to get some ECS-focused benchmarks up and running.

There's also the subject of comparisons across other solutions for C#. For example, it would be good to have some benchmarks that we could run against Unity's job system, Unreal's Tasks System, Quartz.NET, or maybe even C#'s default Task library to see how our overhead compares and where we might improve.

genaray commented 1 year ago

By the way, I like your scientific approach! Unfortunately, there are hardly any people who rely on paper, most people just do it with their gut feeling :D

Real world benchmarks would of course be important. But unfortunately also an incredible amount of effort. The micro benchmarks (at least some) would probably be the best variant. For ECS benchmarking we could come up with a scenario. The most realistic would be something like position calculation, pathfinding, collision checks or similar... best scenarios where each entity is addressed by itself and there are hardly any cross-references.

For the beginning, we should maybe implement the benchmark for this framework only. Unity and co can follow later.