Skip to content

Commit

Permalink
Engine - cleanup deprecated README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
friflo committed Aug 12, 2024
1 parent 9671ba1 commit 9dd9e26
Showing 1 changed file with 1 addition and 116 deletions.
117 changes: 1 addition & 116 deletions Engine/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,13 @@
# 🔥 Friflo.Engine.ECS

***The ECS for finishers 🏁***
Leading performance in most ECS aspects.
Average Performance Ratio - see [C# ECS Benchmark Overview](https://github.com/friflo/ECS.CSharp.Benchmark-common-use-cases/blob/main/README.md#overview)

| | friflo | Flecs.NET | TinyEcs | Arch | fennecs | Leopotam | DefaultEcs | Morpeh |
| ------- | ----------:| ----------:| ----------:| ----------:| ----------:| ----------:| ----------:| ----------:|
| *Ratio* | 1.00 | 2.55 | 3.42 | 6.96 | 19.02 | 2.57 | 3.81 | 21.09 |
| *Notes* | | | | | | [^sparse] | [^sparse] | [^sparse] |

[^sparse]: Sparse Set based ECS projects.

## News

- [x] ![new](docs/images/new.svg) moved **Friflo.Engine.ECS** to its own repository https://github.com/friflo/Friflo.Engine.ECS
The source code / history will be kept as is in this repo. **Further development in the new repo**.

- [x] Released v3.0.0-preview.5
New: **Entity Relationships** 1:1 and 1:many, **Relations** and full-text **Search** executing in O(1). See [Component Types](#-component-types)

- [x] New GitHub benchmark repository [ECS.CSharp.Benchmark - Common use-cases](https://github.com/friflo/ECS.CSharp.Benchmark-common-use-cases)

## Contents

* [🔥 Friflo.Engine.ECS](#-frifloengineecs)
Expand Down Expand Up @@ -310,26 +297,8 @@ entities number of entities matching a QuerySystem

# 📖 Wiki

The **GitHub Wiki** provide you detailed information about the ECS and illustrate them by examples.

- [**Examples - General**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Examples-~-General)
Explain fundamental ECS types like *Entity*, *Component*, *Tag*, *Command Buffer*, ... and show you how to use them.
Contains an example for [Native AOT](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot) integration.

- [**Examples - Optimization**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Examples-~-Optimization)
Provide you techniques how to improve ECS performance.
Wiki moved to **gitbook.io**[**friflo.gitbook.io/friflo.engine.ecs**](https://friflo.gitbook.io/friflo.engine.ecs)

- [**Extensions**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Extensions)
Projects extending Friflo.Engine.ECS with additional features.

- [**Features**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Features)
Integration possibilities, a complete feature list and performance characteristics 🔥.

- [**Library**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Library)
List supported platforms, properties of the assembly dll and build statistics.

- [**Release Notes**](https://github.com/friflo/Friflo.Json.Fliox/wiki/Release-Notes)
List of changes of every release available on nuget.

<br/>

Expand All @@ -344,90 +313,6 @@ It compares the performance of multiple ECS projects with **simple** benchmarks.
So they can be used as a **guide to migrate** form one ECS to another.
See discussion of [reddit announcement Post](https://www.reddit.com/r/EntityComponentSystem/comments/1e0qo62/just_published_new_github_repo_ecs_c_benchmark/).


## ECS.CSharp.Benchmark

Performance comparison in popular **ECS C# benchmark** on GitHub.
Two benchmarks - subset of [GitHub ⋅ Ecs.CSharp.Benchmark + PR #38](https://github.com/Doraku/Ecs.CSharp.Benchmark/pull/38)
running on a Mac Mini M2.

![new](docs/images/new.svg) **2024-05-29** - Updated benchmarks.
Improved create entities performance by **3x** to **4x** and minimized entity memory footprint from **48** to **16** bytes.
Published in nuget package **2.0.0-preview.3**.

Made a subset as the other benchmarks are similar only with different parameters.

1. Create 100.000 entities with three components
2. Update 100.000 entities with two components


## 1. Create 100.000 entities with three components

| Method | | Mean | Gen0 | Allocated |
|----------------- |--|-------------:|----------:|------------:|
| Arch | | 6,980.1 μs | - | 3948.51 KB |
| SveltoECS | | 28,165.0 μs | - | 4.97 KB |
| DefaultEcs | | 12,680.4 μs | - | 19517.01 KB |
| Fennecs | | 24,922.4 μs | - | 16713.45 KB |
| FlecsNet | | 12,114.1 μs | - | 3.81 KB |
| FrifloEngineEcs |🔥| 405.3 μs | - | 3625.46 KB |
| HypEcs | | 22,376.5 μs | 6000.0000 | 68748.73 KB |
| LeopotamEcsLite | | 5,199.9 μs | - | 11248.47 KB |
| LeopotamEcs | | 8,758.8 μs | 1000.0000 | 15736.73 KB |
| MonoGameExtended | | 30,789.0 μs | 1000.0000 | 30154.38 KB |
| Morpeh_Direct | | 126,841.8 μs | 9000.0000 | 83805.52 KB |
| Morpeh_Stash | | 67,127.7 μs | 4000.0000 | 44720.38 KB |
| Myriad | | 15,824.5 μs | - | 7705.36 KB |
| RelEcs | | 58,002.5 μs | 6000.0000 | 75702.71 KB |
| TinyEcs | | 20,190.4 μs | 2000.0000 | 21317.2 KB |

🔥 *library of this project*

## 2. Update 100.000 entities with two components

Benchmark parameter: Padding = 0

*Notable fact*
SIMD MonoThread running on a **single core** beats MultiThread running on 8 cores.
So other threads can still keep running without competing for CPU resources.

| Method | | Mean | Allocated |
|-------------------------------- |--|------------:|----------:|
| Arch_MonoThread | | 62.09 μs | - |
| Arch_MonoThread_SourceGenerated | | 52.43 μs | - |
| Arch_MultiThread | | 49.57 μs | - |
| DefaultEcs_MonoThread | | 126.33 μs | - |
| DefaultEcs_MultiThread | | 128.18 μs | - |
| Fennecs_ForEach | | 56.30 μs | - |
| Fennecs_Job | | 69.65 μs | - |
| Fennecs_Raw | | 52.34 μs | - |
| FlecsNet_Each | | 103.26 μs | - |
| FlecsNet_Iter | | 64.23 μs | - |
| FrifloEngineEcs_MonoThread |🔥| 57.62 μs | - |
| FrifloEngineEcs_MultiThread |🔥| 17.17 μs | - |
| FrifloEngineEcs_SIMD_MonoThread |🔥| 11.00 μs | - |
| HypEcs_MonoThread | | 57.57 μs | 112 B |
| HypEcs_MultiThread | | 61.94 μs | 2079 B |
| LeopotamEcsLite | | 150.11 μs | - |
| LeopotamEcs | | 134.98 μs | - |
| MonoGameExtended | | 467.59 μs | 161 B |
| Morpeh_Direct | | 1,590.35 μs | 3 B |
| Morpeh_Stash | | 1,023.88 μs | 3 B |
| Myriad_SingleThread | | 46.20 μs | - |
| Myriad_MultiThread | | 366.27 μs | 239938 B |
| Myriad_SingleThreadChunk | | 61.32 μs | - |
| Myriad_MultiThreadChunk | | 25.31 μs | 3085 B |
| Myriad_Enumerable | | 238.59 μs | - |
| Myriad_Delegate | | 73.47 μs | - |
| Myriad_SingleThreadChunk_SIMD | | 22.33 μs | - |
| RelEcs | | 251.30 μs | 169 B |
| SveltoECS | | 162.92 μs | - |
| TinyEcs_Each | | 37.09 μs | - |
| TinyEcs_EachJob | | 23.52 μs | 1552 B |


🔥 *library of this project*

<br/>


Expand Down

0 comments on commit 9dd9e26

Please sign in to comment.