Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
* add results
* use results from windows
  • Loading branch information
abeimler committed Jun 22, 2022
1 parent cc801ae commit 818c6ac
Show file tree
Hide file tree
Showing 135 changed files with 87,738 additions and 226 deletions.
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
reports/*.txt
reports/*.xml
reports/*.json
reports/*.out
reports/*.png
reports/RESULTS.md
reports/*.RESULTS.md

reports/!example.*.txt
reports/!example.*.xml
reports/!example.*.json
reports/!example.*.out
reports/!example.*.png
reports/!example.RESULTS.md


/build*
/.vscode
/cpm_modules
Expand Down Expand Up @@ -753,4 +769,4 @@ healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/

# End of https://www.gitignore.io/api/linux,windows,osx,cmake,c++,netbeans,visualstudio,visualstudiocode,code,kdevelop4,qtcreator,android,androidstudio
# End of https://www.gitignore.io/api/linux,windows,osx,cmake,c++,netbeans,visualstudio,visualstudiocode,code,kdevelop4,qtcreator,android,androidstudio
420 changes: 210 additions & 210 deletions README.md

Large diffs are not rendered by default.

Binary file modified img/ComplexSystemsUpdate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/ComplexSystemsUpdateMixedEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/CreateEmptyEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/CreateEmptyEntitiesInBulk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/CreateEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/CreateEntitiesInBulk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/DestroyEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/DestroyEntitiesInBulk.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/IterateSingleComponent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/IterateThreeComponentsWithMixedEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/IterateTwoComponents.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/RemoveAddComponent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/SystemsUpdate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/SystemsUpdateMixedEntities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/UnpackOneComponent.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/UnpackOneComponentConst.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/UnpackThreeComponents.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/UnpackTwoComponents.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 0 additions & 14 deletions reports/.gitignore

This file was deleted.

Empty file added reports/.gitkeep
Empty file.
116 changes: 116 additions & 0 deletions results/linux-i5/RESULTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Results

## TL;DR Results

![Summary SystemsUpdate Plot](img/SystemsUpdate.png)

_(lower is faster)_

None

None



## Benchmarks

### Update systems (for-each entities in 2 systems)

![SystemsUpdate Plot](img/SystemsUpdate.png)

_(lower is better)_

| | EntityX | EnTT | Ginseng | mustache | Flecs |
|:-------------------------------------|:----------|:----------|:----------|:-----------|:---------|
| Update 16 entities with 2 systems | 4583ns | 3930ns | 4237ns | 29076ns | 5938ns |
| Update 64 entities with 2 systems | 18142ns | 16065ns | 15883ns | 40558ns | 17545ns |
| Update 256 entities with 2 systems | 72598ns | 62608ns | 62870ns | 88057ns | 63986ns |
| Update ~1K entities with 2 systems | 293879ns | 252387ns | 271564ns | 285355ns | 250973ns |
| Update ~4K entities with 2 systems | 1120748ns | 1052854ns | 1053486ns | 1024286ns | 968006ns |

| | EntityX | EnTT | Ginseng | mustache | Flecs |
|:-------------------------------------|:----------|:-------|:----------|:-----------|:--------|
| Update ~16K entities with 2 systems | 4ms | 4ms | 3ms | 3ms | 4ms |
| Update ~65K entities with 2 systems | 19ms | 17ms | 16ms | 15ms | 15ms |
| Update 262K entities with 2 systems | 80ms | 65ms | 65ms | 68ms | 67ms |
| Update ~1M entities with 2 systems | 298ms | 277ms | 261ms | 256ms | 272ms |
| Update ~2M entities with 2 systems | 601ms | 528ms | 523ms | 516ms | 509ms |


### Update systems (for-each entities (with mixed components) in 2 systems)

![SystemsUpdateMixedEntities Plot](img/SystemsUpdateMixedEntities.png)

_(lower is better)_

| | EntityX | EnTT | Ginseng | mustache | Flecs |
|:-------------------------------------|:----------|:----------|:----------|:-----------|:---------|
| Update 16 entities with 2 systems | 4014ns | 3694ns | 3808ns | 23653ns | 6146ns |
| Update 64 entities with 2 systems | 17622ns | 14390ns | 15512ns | 34366ns | 16599ns |
| Update 256 entities with 2 systems | 72753ns | 63009ns | 67528ns | 96210ns | 64041ns |
| Update ~1K entities with 2 systems | 292561ns | 252674ns | 253654ns | 286156ns | 250901ns |
| Update ~4K entities with 2 systems | 1117589ns | 1050923ns | 1010579ns | 1079594ns | 965099ns |

| | EntityX | EnTT | Ginseng | mustache | Flecs |
|:-------------------------------------|:----------|:-------|:----------|:-----------|:--------|
| Update ~16K entities with 2 systems | 4ms | 3ms | 3ms | 4ms | 3ms |
| Update ~65K entities with 2 systems | 18ms | 16ms | 15ms | 17ms | 16ms |
| Update 262K entities with 2 systems | 74ms | 69ms | 69ms | 64ms | 63ms |
| Update ~1M entities with 2 systems | 323ms | 260ms | 277ms | 256ms | 252ms |
| Update ~2M entities with 2 systems | 600ms | 534ms | 572ms | 563ms | 506ms |





### Candidates

#### EntityX by @alecthomas

> Entity Component Systems (ECS) are a form of decomposition that completely decouples entity logic and data from the entity "objects" themselves. The Evolve your Hierarchy article provides a solid overview of EC systems and why you should use them.
Version: 1.1.2 (Dec 2021)

#### EnTT by @skypjack

> EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++.
Version: 3.10.1

#### Ginseng by @apples

> Ginseng is an entity-component-system (ECS) library designed for use in games.
The main advantage over similar libraries is that the component types do not need to be listed or registered. Component types are detected dynamically.

Any function-like object can be used as a system. The function's parameters are used to determine the required components.

Version: 1.1 (Dec 2021)

#### mustache by @kirillochnev

> A fast, modern C++ Entity Component System
Version: 0.2 (Feb 2022)

#### OpenEcs by @Gronis

> Open Ecs is an Entity Component System that uses metaprogramming, cache coherency, and other useful tricks to maximize performance and configurability. It is written in c++11 without further dependencies.
Version: Beta (Apr 2017)

#### Flecs by @SanderMertens

> Flecs is a fast and lightweight Entity Component System that lets you build games and simulations with millions of entities.
Version: v2.4.8 (Mai 2022)




### Environment

* **OS:** Linux
* **CPU:** 3.10GHz @ 4Cores
* **RAM:** 7.64GB

Loading

0 comments on commit 818c6ac

Please sign in to comment.