-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sort benchmark results in REAMDE.md by column: Mean #37
Comments
well it wasn't really supposed to become a score board but I get you haha. It could probably come with the next PR #36 |
Ah, |
Speaking of leaderboard. Best C# implementation: aspcore-ado-pg |
Oh, the race is absolutely on, @friflo ! 🚀😎 (in only the best of sporting spirits). I am growing really curious where either of our EC-Systems can be improved beyond what we as the creators already know (as well as the others) - true discoveries and learnings, so to speak. I gotta say, I admire your Carmack-style indentation, type hierarchies, and project structure, so slick and clean! Honestly one of the nicest repos I have seen in a long time. LG, Tiger PS: I also agree that Arch is at best middling despite bold claims to the contrary on its repo README.MD. Since the results are not sorted by value, Arch appears to benefit greatly from recency bias when reading. Perhaps I should rename Just to put into perspective where Arch kinda scores right now... (this is CreateEntityWithThreeComponents 100k after the PR #36 as run on my machine)
|
Hi @thygrrr! Challenge accepted 😊 I am already looking where I can improve performance. Found already one hotspot. I checked your implementation. I guess you should add a @Doraku Is it okay to reuse a World in the benchmark to avoid the cost for memory allocations?
Far too much praise but I appreciate. btw: Arch is very good in selling his ECS. Even if I don't like this exaggerated wording. |
I'm warming up my queries for the Job benchmarks (because of how Additionally I'm (now) also pre-sizing World and underlying IdentityPool based on the number of entities to expect. This saves unnecessary cascading and repeat dictionary and storage array resizes, etc. that on real life runs would also never occur more than once, and that a user in the know would work around the exact same way after reading the docs. I find that this is common sense and common practice for any expected ECS real work use. Otherwise I'd just set the default capacities from 4K to 128K in the next release. ;) |
LOL |
Hi @thygrrr, finished optimization of create entities. See: #38 The main optimization was to minimize the administration memory footprint used for an entity The counterpart in your lib is called Now I don't see any significant optimization possibilities. Viele Grüße, |
As the maintainer of Friflo.Engine.ECS I want to ask if the benchmark results in
README.md
can be ordered by column: Mean.Every Component benchmark have now 44 rows. So you are lost in numbers.
As a result you go with Arch assuming the tables are already sorted.
This assumption comes from the coincidence that Arch have good results in average.
Morpeh & SveltoECS are at the bottom caused by the alphabetical sort order.
So there is no real incentive to improve performance.
You never got on the Top caused by the selected project Name.
Alternatively we could rename our projects to "Abc-..." 😊
Any thoughts?
The text was updated successfully, but these errors were encountered: