百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
E

Ecs.CSharp.Benchmark

> 编程语言
开源

一些 C# ECS 框架的基准测试。

179 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

一些 C# ECS 框架的基准测试。

ECS c# Benchmark

This repo contains benchmarks of some c# ECS frameworks. Feel free to add your own or correct usage of existing ones! Please make your framework available as a nuget package to ease referencing and updating versions.

The benchmarks are not representative of usage in real conditions but results can still be interesting to look at.

All results are obtained from the same toaster, with the same load, so comparison is fairer.

Tested frameworks:

  • Arch
  • DefaultEcs
  • Fennecs
  • Flecs.Net
  • Frent
  • Friflo.Engine.ECS
  • Leopotam.Ecs using what I believe is a nuget package not made by the actual author and compiled in debug...
  • Leopotam.EcsLite using what I believe is a nuget package not made by the actual author and compiled in debug...
  • MonoGame.Extended
  • Morpeh
  • Myriad.ECS
  • HypEcs
  • RelEcs
  • Svelto.ECS
  • TinyEcs

Removed frameworks:

  • Entitas removed because it was taking forever to initialize in the later tests when moved to net8, you can check older benchmark results here

Tested versions may not be latest available, that's because I'm lazy and new versions may introduce breaking changes, so feel free to create pull requests to update libs you are knowledgeable about.

CreateEntityWithOneComponent

Create entities with one component.

Method Mean StdDev Allocated
Frent_Bulk 768.6 μs 24.45 μs 3322.91 KB
Frent 1,038.5 μs 15.93 μs 3322.91 KB
FrifloEngineEcs 2,022.5 μs 29.98 μs 3381.74 KB
LeopotamEcsLite 2,863.2 μs 284.50 μs 7151.08 KB
Arch 3,694.8 μs 124.75 μs 3178.44 KB
DefaultEcs 7,103.9 μs 281.95 μs 11321.11 KB
FlecsNet 7,480.1 μs 153.12 μs 2.73 KB
MonoGameExtended 8,282.6 μs 592.85 μs 16408.89 KB
LeopotamEcs 9,003.1 μs 735.44 μs 13685.65 KB
TinyEcs 11,316.8 μs 242.01 μs 7834.44 KB
HypEcs 11,542.5 μs 672.16 μs 25829.38 KB
Fennecs 12,146.8 μs 460.88 μs 13636.45 KB
Myriad 17,310.6 μs 438.87 μs 7633.45 KB
RelEcs 25,686.8 μs 1,456.76 μs 29706.66 KB
SveltoECS 26,330.5 μs 598.68 μs 3.22 KB
Morpeh_Stash 67,075.5 μs 1,105.68 μs 41305.76 KB
Morpeh_Direct 67,753.8 μs 1,364.95 μs 41305.76 KB

CreateEntityWithTwoComponents

Create entities with two components.

Method Mean StdDev Allocated
Frent 1.188 ms 0.0050 ms 3713.63 KB
Frent_Bulk 1.263 ms 0.0214 ms 3713.63 KB
FrifloEngineEcs 2.933 ms 0.1588 ms 3898.13 KB
Arch 3.864 ms 0.1820 ms 3558.44 KB
LeopotamEcsLite 4.599 ms 0.8319 ms 9199.61 KB
DefaultEcs 10.217 ms 0.4302 ms 15418.9 KB
LeopotamEcs 10.451 ms 0.8563 ms 14711.02 KB
FlecsNet 14.295 ms 0.2492 ms 3.11 KB
MonoGameExtended 17.426 ms 1.1724 ms 23373.84 KB
TinyEcs 19.518 ms 1.4443 ms 13785.08 KB
Fennecs 19.817 ms 0.4584 ms 15174.45 KB
HypEcs 21.669 ms 0.3002 ms 45336.69 KB
Myriad 23.799 ms 0.4402 ms 8028.55 KB
SveltoECS 39.648 ms 1.8089 ms 4.14 KB
RelEcs 60.414 ms 2.5217 ms 50749.86 KB
Morpeh_Stash 75.880 ms 2.4763 ms 48133.7 KB
Morpeh_Direct 271.755 ms 16.5622 ms 128861.64 KB

CreateEntityWithThreeComponents

Create entities with three components.

Method Mean StdDev Allocated
Frent 1.335 ms 0.0065 ms 4104.34 KB
Frent_Bulk 1.346 ms 0.0273 ms 4104.34 KB
FrifloEngineEcs 3.067 ms 0.0878 ms 4412.23 KB
LeopotamEcsLite 4.917 ms 0.2248 ms 11248.14 KB
Arch 8.351 ms 0.1357 ms 3947.67 KB
LeopotamEcs 11.649 ms 0.6685 ms 15736.4 KB
DefaultEcs 11.982 ms 0.4362 ms 19516.68 KB
FlecsNet 21.084 ms 0.1698 ms 3.48 KB
Myriad 26.959 ms 0.3333 ms 8423.66 KB
Fennecs 29.525 ms 0.3057 ms 16713.12 KB
TinyEcs 33.582 ms 0.5317 ms 21316.55 KB
HypEcs 35.524 ms 1.5668 ms 68748.41 KB
MonoGameExtended 39.518 ms 1.6480 ms 30154.05 KB
SveltoECS 52.785 ms 1.8500 ms 4.64 KB
Morpeh_Stash 70.168 ms 1.6399 ms 44719.73 KB
RelEcs 83.031 ms 1.9343 ms 75699.76 KB
Morpeh_Direct 179.589 ms 3.6865 ms 83804.58 KB

SystemWithOneComponent

Modify entities with one component. The padding aims to simulate real situation when processed entities and their components are not sequential.

Note: Padding tests were removed for libraries that use archetypes to save space as padding makes no difference in their results

Method EntityPadding Mean StdDev Allocated
Frent_Simd 0 8.001 μs 0.0707 μs -
FrifloEngineEcs_SIMD_MonoThread 0 8.832 μs 0.1063 μs -
FrifloEngineEcs_MultiThread 0 9.687 μs 0.4677 μs -
Myriad_SingleThreadChunk_SIMD 0 11.607 μs 0.1431 μs -
Myriad_MultiThreadChunk 0 17.138 μs 0.1526 μs 9216 B
TinyEcs_EachJob 0 19.308 μs 0.3354 μs 1552 B
Fennecs_Job 0 26.045 μs 0.8157 μs -
TinyEcs_Each 0 29.781 μs 0.1316 μs -
Arch_MultiThread 0 32.913 μs 0.2353 μs -
Frent_QueryInline 0 33.690 μs 0.1638 μs -
HypEcs_MonoThread 0 44.341 μs 0.0620 μs 72 B
FrifloEngineEcs_MonoThread 0 44.977 μs 0.2093 μs -
Fennecs_ForEach 0 45.015 μs 0.2813 μs -
DefaultEcs_ComponentSystem_MonoThread 0 45.579 μs 1.0413 μs -
Fennecs_Raw 0 45.949 μs 0.2371 μs -
Arch_MonoThread 0 46.696 μs 0.2203 μs -
Arch_MonoThread_SourceGenerated 0 47.506 μs 0.3456 μs -
Myriad_SingleThreadChunk 0 47.526 μs 0.2036 μs -
HypEcs_MultiThread 0 49.295 μs 0.3248 μs 1832 B
DefaultEcs_ComponentSystem_MultiThread 0 49.427 μs 8.2200 μs -
Myriad_SingleThread 0 49.564 μs 0.2483 μs -
Frent_QueryDelegate 0 53.680 μs 1.4546 μs -
FlecsNet_Iter 0 56.540 μs 0.1969 μs -
Myriad_MultiThread 0 71.270 μs 0.3873 μs 16213 B
DefaultEcs_EntitySetSystem_MonoThread 0 71.717 μs 0.5674 μs -
LeopotamEcs 0 83.138 μs 0.5633 μs -
FlecsNet_Each 0 90.498 μs 0.4793 μs -
Myriad_Delegate 0 91.233 μs 0.5065 μs -
DefaultEcs_EntitySetSystem_MultiThread 0 100.011 μs 2.0387 μs -
LeopotamEcsLite 0 101.708 μs 0.4140 μs -
SveltoECS 0 111.771 μs 0.4182 μs -
Myriad_Enumerable 0 198.400 μs 0.7397 μs -
RelEcs 0 203.954 μs 2.0630 μs 121 B
MonoGameExtended 0 305.970 μs 4.1697 μs 161 B
Morpeh_Stash 0 2,354.802 μs 55.0717 μs 4 B
Morpeh_Direct 0 2,906.300 μs 36.9789 μs 4 B
DefaultEcs_ComponentSystem_MonoThread 10 44.760 μs 0.6112 μs -
DefaultEcs_ComponentSystem_MultiThread 10 55.017 μs 12.3385 μs -
LeopotamEcs 10 82.681 μs 0.4651 μs -
DefaultEcs_EntitySetSystem_MultiThread 10 108.222 μs 1.4470 μs -
DefaultEcs_EntitySetSystem_MonoThread 10 109.532 μs 3.1273 μs -
LeopotamEcsLite 10 122.782 μs 1.7006 μs -
SveltoECS 10 133.520 μs 0.7607 μs -
RelEcs 10 506.912 μs 13.9889 μs 121 B
MonoGameExtended 10 1,456.219 μs 45.6079 μs 162 B
Morpeh_Stash 10 7,824.125 μs 172.3176 μs 8 B
Morpeh_Direct 10 8,998.948 μs 187.5417 μs 17 B

SystemWithTwoComponents

Modify entities with two components. The padding aims to simulate real situation when processed entities and their components are not sequential.

Method EntityPadding Mean StdDev Allocated
FrifloEngineEcs_MultiThread 0 12.43 μs 1.049 μs -
Frent_Simd 0 14.03 μs 0.122 μs -
FrifloEngineEcs_SIMD_MonoThread 0 14.34 μs 0.058 μ

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C#

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月18日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言