Skip to content
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

Add TinyECS #29

Merged
merged 1 commit into from
Apr 29, 2024
Merged

Add TinyECS #29

merged 1 commit into from
Apr 29, 2024

Conversation

xentripetal
Copy link
Contributor

Adds TinyEcs, a neat ECS lib I stumbled upon that has a lot of nice features.

Sample results from my machine (M1 Max)

(Note, Myriad broke the ability to test padding across all tests by throwing an exception in its constructor, will submit a mr to fix that)

Create with one

Method EntityCount Mean Error StdDev Gen0 Allocated
TinyEcs 100000 38.35 ms 7.279 ms 0.399 ms 1000.0000 7.65 MB

Create with two

Method EntityCount Mean Error StdDev Gen0 Gen1 Allocated
TinyEcs 100000 54.20 ms 593.51 ms 32.53 ms 2000.0000 1000.0000 13.46 MB

Create with three

Method EntityCount Mean Error StdDev Gen0 Gen1 Allocated
TinyEcs 100000 23.12 ms 1.649 ms 0.090 ms 3000.0000 1000.0000 20.82 MB

System with one

Method EntityCount EntityPadding Mean Error StdDev Gen0 Allocated
TinyEcs_Each 100000 0 41.31 μs 3.724 μs 0.204 μs - -
TinyEcs_EachJob 100000 0 27.36 μs 3.007 μs 0.165 μs 0.2441 1552 B

System with two

Method EntityCount EntityPadding Mean Error StdDev Gen0 Allocated
TinyEcs_Each 100000 0 66.17 μs 0.348 μs 0.019 μs - -
TinyEcs_EachJob 100000 0 30.73 μs 4.885 μs 0.268 μs 0.2441 1552 B

System with three

Method EntityCount EntityPadding Mean Error StdDev Gen0 Allocated
TinyEcs_Each 100000 0 68.81 μs 0.761 μs 0.042 μs - -
TinyEcs_EachJob 100000 0 35.22 μs 69.165 μs 3.791 μs 0.2441 1560 B

System with two mixed

Method EntityCount Mean Error StdDev Gen0 Allocated
TinyEcs_Each 100000 65.87 μs 0.415 μs 0.023 μs - -
TinyEcs_EachJob 100000 31.43 μs 12.589 μs 0.690 μs 0.3052 2080 B

@Doraku Doraku merged commit f0d7246 into Doraku:master Apr 29, 2024
1 check passed
@andreakarasho
Copy link

andreakarasho commented Apr 30, 2024

Hey thank you for the effort to bench TinyEcs! I really appreciate it :)
To improve peformance results and to stay aligned with other libraries tests [if I didn't miss anything] I would suggest to switch to queries without EntityView on the sign and to cache the query.
Anyway thank you again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants