minECS icon indicating copy to clipboard operation
minECS copied to clipboard

Benchmark Results

Open Alan-FGR opened this issue 6 years ago • 17 comments

Convenience issue for testers to send their benchmark results. Just drag and drop the txt or other output files in a new reply. Inform the CPU where you ran the benchmarks in your reply. Simple id (like i7 6700k) is more than enough.

Prebuilt binaries can be downloaded here: https://github.com/Alan-FGR/minECS/tree/entt_bench/Benchmarker/prebuilt It's just a compiled distribution version of that branch. native contains native binaries and thus don't require any runtime. Run the Benchmarker.exe. bench contains managed binaries and require dotnet to run. There's a _run.bat for convenience. Both versions require Win7+ 64 bit. Please inform which version you've used.

Thank you!

NOTE: in the detailed results, if you're using the managed version the first loop takes much longer because of jitting. It could be pre-jitted but I'm discarding those values that are too off so it doesn't affect the results_ALL

Alan-FGR avatar Aug 01 '18 19:08 Alan-FGR

@Wraith2 thank you :smile:

Alan-FGR avatar Aug 01 '18 21:08 Alan-FGR

i7_5820k.zip

(ran the native one)

jdswebb avatar Aug 01 '18 23:08 jdswebb

@jdswebb thank you :smiley:

Alan-FGR avatar Aug 01 '18 23:08 Alan-FGR

Results from old Conroe 2.66GHz (native): Benchs.zip

Alan-FGR avatar Aug 02 '18 04:08 Alan-FGR

Results from Haswell 3.0GHz (native): res.zip

Alan-FGR avatar Aug 02 '18 11:08 Alan-FGR

native_xeon_E5_1660.zip

:smile:

jdswebb avatar Aug 02 '18 12:08 jdswebb

thank you @jdswebb :smiley: interesting... EnTT beats minECS in some tests there...

Alan-FGR avatar Aug 02 '18 12:08 Alan-FGR

Hi @Alan-FGR

Since you opened this, I reviewed persistent views and got an improvement around 100x on some preliminary tests.
Would you run once more benchmarks against master of EnTT?
Knowing where I've still to improve things could help a lot actually. Thanks.
If you want, I can update your main.cpp file to be sure it's using properly new persistent views. Let me know.

skypjack avatar Nov 19 '18 15:11 skypjack

@skypjack you want my help to prove that latest EnTT completely blows my ECS outta water? :trollface: I'll just have to check in the old commits what settings I've used for the benchmark. Once I'm done I'll ping you so you can see if the EnTT usage is sound.

Alan-FGR avatar Nov 19 '18 16:11 Alan-FGR

Ahahahah no, indeed. This wasn't the goal, but it's an appreciated side effect now that you pointed it out. :trollface:
To be honest, your benchmarks and some of the questions on gitter were the key to motivate me to make a review of the persistent views. I had an idea for a while but I was too lazy to implement it, because I didn't have a need for more performance actually.
I'm just curious to know if I get more or less the same results or, at least, how far EnTT is from the performance of different approaches. Probably there is room for further optimizations, but I'm again too lazy for them now! :joy:

skypjack avatar Nov 19 '18 16:11 skypjack

I've added some more exhaustive benchmarks and minECS performs surprisingly well even compared to the new persistent views in EnTT... as we discussed though these stress tests might not reflect real-world scenarios very well but they're still relatively useful to at very least know what kind of performance you should except in my opinion. Here are native binaries: benchmarks.zip

Alan-FGR avatar Jan 24 '19 20:01 Alan-FGR

Persistent views are gone. If you want to test it against groups, there is a new lower bound to reach. :wink:

skypjack avatar Feb 21 '19 07:02 skypjack

@skypjack great to see EnTT gets such substantial improvements so quickly... it's really moving forward by leaps and bounds! I'll make sure to update my benchmarks when I have some time. Thanks for letting me know :)

Alan-FGR avatar Feb 22 '19 00:02 Alan-FGR

there is a benchmark for ECS frameworks https://github.com/Doraku/Ecs.CSharp.Benchmark

sgf avatar Jun 08 '21 19:06 sgf

a cool C# likely native-language Beef https://github.com/beefytech/Beef maybe make a port for Beef?

sgf avatar Dec 21 '21 16:12 sgf