diff --git a/README.md b/README.md index fda1c97..dc8665c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Create entities with one component. | Method | Mean | CacheMisses/Op | Allocated | |----------------- |----------:|---------------:|------------:| -| Arch | 12.336 ms | 58,672 | 9738.77 KB | +| Arch | 13.65 ms | 58,716 | 9.54 MB | | DefaultEcs | 8.788 ms | 107,383 | 11324.52 KB | | Entitas | 92.512 ms | 1,318,366 | 56677.68 KB | | HypEcs | 23.080 ms | 266,240 | 25825.78 KB | @@ -36,7 +36,7 @@ Create entities with two components. | Method | Mean | CacheMisses/Op | Allocated | |----------------- |-----------:|---------------:|------------:| -| Arch | 8.554 ms | 56,185 | 9910.11 KB | +| Arch | 12.08 ms | 62,393 | 9.7 MB | | DefaultEcs | 14.638 ms | 174,816 | 15417.45 KB | | Entitas | 99.232 ms | 1,287,851 | 59021.43 KB | | HypEcs | 44.893 ms | 360,448 | 45333.15 KB | @@ -51,7 +51,7 @@ Create entities with three components. | Method | Mean | CacheMisses/Op | Allocated | |----------------- |-----------:|---------------:|------------:| -| Arch | 8.593 ms | 59,173 | 10405.95 KB | +| Arch | 14.03 ms | 63,986 | 10.16 MB | | DefaultEcs | 19.569 ms | 232,325 | 19516.31 KB | | Entitas | 103.717 ms | 1,386,701 | 61365.18 KB | | HypEcs | 73.461 ms | 431,923 | 68751.98 KB | @@ -66,7 +66,8 @@ Modify entities with one component. The padding aims to simulate real situation | Method | Mean | CacheMisses/Op | Allocated | |--------------------------------------- |-------------:|---------------:|----------:| -| Arch | 62.59 μs | 2 | - | +| Arch_MonoThread | 61.74 μs | 3 | - | +| Arch_MultiThread | 30.25 μs | 3 | - | | DefaultEcs_ComponentSystem_MonoThread | 56.71 μs | 1 | - | | DefaultEcs_ComponentSystem_MultiThread | 15.42 μs | 1 | - | | DefaultEcs_EntitySetSystem_MonoThread | 163.55 μs | 5 | - | @@ -86,7 +87,8 @@ Modify entities with two components. The padding aims to simulate real situation | Method | Mean | CacheMisses/Op | Allocated | |----------------------- |-------------:|---------------:|----------:| -| Arch | 92.67 μs | 3 | - | +| Arch_MonoThread | 91.48 μs | 3 | - | +| Arch_MultiThread | 36.82 μs | 5 | - | | DefaultEcs_MonoThread | 254.98 μs | 17 | 1 B | | DefaultEcs_MultiThread | 67.94 μs | 9 | - | | Entitas_MonoThread | 4,494.22 μs | 318,174 | 109 B | @@ -104,7 +106,8 @@ Modify entities with three components. The padding aims to simulate real situati | Method | Mean | CacheMisses/Op | Allocated | |----------------------- |-------------:|---------------:|----------:| -| Arch | 114.32 μs | 5 | - | +| Arch_MonoThread | 111.44 μs | 8 | - | +| Arch_MultiThread | 41.68 μs | 7 | - | | DefaultEcs_MonoThread | 388.85 μs | 36 | 1 B | | DefaultEcs_MultiThread | 104.02 μs | 40 | - | | Entitas_MonoThread | 4,341.06 μs | 344,337 | 109 B | @@ -122,7 +125,8 @@ Modify entities with two components while different entity compositions match th | Method | Mean | CacheMisses/Op | Allocated | |----------------------- |------------:|---------------:|----------:| -| Arch | 92.85 μs | 2 | - | +| Arch | 91.47 μs | 6 | - | +| Arch_MultiThread | 59.92 μs | 9 | - | | DefaultEcs_MonoThread | 259.89 μs | 9 | 1 B | | DefaultEcs_MultiThread | 69.55 μs | 6 | - | | Entitas_MonoThread | 4,839.97 μs | 340,754 | 112 B | diff --git a/results/Ecs.CSharp.Benchmark.CreateEntityWithOneComponent-report-github.md b/results/Ecs.CSharp.Benchmark.CreateEntityWithOneComponent-report-github.md index fc2077d..95da53a 100644 --- a/results/Ecs.CSharp.Benchmark.CreateEntityWithOneComponent-report-github.md +++ b/results/Ecs.CSharp.Benchmark.CreateEntityWithOneComponent-report-github.md @@ -9,14 +9,14 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co InvocationCount=1 UnrollFactor=1 ``` -| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Gen1 | Gen2 | Allocated | -|----------------- |------------ |----------:|----------:|----------:|---------------:|----------:|----------:|----------:|------------:| -| Arch | 100000 | 12.336 ms | 0.2411 ms | 0.4028 ms | 58,672 | - | - | - | 9738.77 KB | -| DefaultEcs | 100000 | 8.788 ms | 0.1754 ms | 0.1640 ms | 107,383 | 2000.0000 | 2000.0000 | 2000.0000 | 11324.52 KB | -| Entitas | 100000 | 92.512 ms | 1.6030 ms | 1.4994 ms | 1,318,366 | 8000.0000 | 4000.0000 | - | 56677.68 KB | -| HypEcs | 100000 | 23.080 ms | 0.2302 ms | 0.2041 ms | 266,240 | 5000.0000 | 2000.0000 | 2000.0000 | 25825.78 KB | -| LeopotamEcs | 100000 | 19.749 ms | 0.3888 ms | 0.9088 ms | 250,549 | 2000.0000 | 1000.0000 | 1000.0000 | 13684.05 KB | -| LeopotamEcsLite | 100000 | 11.290 ms | 0.1838 ms | 0.1719 ms | 106,496 | 2000.0000 | 2000.0000 | 2000.0000 | 8170.29 KB | -| MonoGameExtended | 100000 | 15.685 ms | 0.2394 ms | 0.2240 ms | 220,979 | 2000.0000 | 2000.0000 | 2000.0000 | 16408.29 KB | -| RelEcs | 100000 | 58.611 ms | 1.1391 ms | 1.4406 ms | 735,294 | 3000.0000 | 3000.0000 | 2000.0000 | 29705.38 KB | -| SveltoECS | 100000 | 41.710 ms | 0.7642 ms | 0.9097 ms | 707,863 | - | - | - | 1.23 KB | +| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------- |------------ |----------:|----------:|----------:|---------------:|------------:| +| Arch | 100000 | 13.65 ms | 0.268 ms | 0.426 ms | 58,716 | 9.54 MB | +| DefaultEcs | 100000 | 8.788 ms | 0.1754 ms | 0.1640 ms | 107,383 | 11324.52 KB | +| Entitas | 100000 | 92.512 ms | 1.6030 ms | 1.4994 ms | 1,318,366 | 56677.68 KB | +| HypEcs | 100000 | 23.080 ms | 0.2302 ms | 0.2041 ms | 266,240 | 25825.78 KB | +| LeopotamEcs | 100000 | 19.749 ms | 0.3888 ms | 0.9088 ms | 250,549 | 13684.05 KB | +| LeopotamEcsLite | 100000 | 11.290 ms | 0.1838 ms | 0.1719 ms | 106,496 | 8170.29 KB | +| MonoGameExtended | 100000 | 15.685 ms | 0.2394 ms | 0.2240 ms | 220,979 | 16408.29 KB | +| RelEcs | 100000 | 58.611 ms | 1.1391 ms | 1.4406 ms | 735,294 | 29705.38 KB | +| SveltoECS | 100000 | 41.710 ms | 0.7642 ms | 0.9097 ms | 707,863 | 1.23 KB | diff --git a/results/Ecs.CSharp.Benchmark.CreateEntityWithThreeComponents-report-github.md b/results/Ecs.CSharp.Benchmark.CreateEntityWithThreeComponents-report-github.md index 347e5c9..2ab6a1c 100644 --- a/results/Ecs.CSharp.Benchmark.CreateEntityWithThreeComponents-report-github.md +++ b/results/Ecs.CSharp.Benchmark.CreateEntityWithThreeComponents-report-github.md @@ -9,14 +9,14 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co InvocationCount=1 UnrollFactor=1 ``` -| Method | EntityCount | Mean | Error | StdDev | Median | CacheMisses/Op | Gen0 | Gen1 | Gen2 | Allocated | -|----------------- |------------ |-----------:|----------:|----------:|-----------:|---------------:|-----------:|----------:|----------:|------------:| -| Arch | 100000 | 8.593 ms | 0.1707 ms | 0.3206 ms | 8.728 ms | 59,173 | 1000.0000 | 1000.0000 | 1000.0000 | 10405.95 KB | -| DefaultEcs | 100000 | 19.569 ms | 0.1750 ms | 0.1946 ms | 19.633 ms | 232,325 | 2000.0000 | 2000.0000 | 2000.0000 | 19516.31 KB | -| Entitas | 100000 | 103.717 ms | 0.5845 ms | 0.5181 ms | 103.791 ms | 1,386,701 | 9000.0000 | 4000.0000 | - | 61365.18 KB | -| HypEcs | 100000 | 73.461 ms | 1.3983 ms | 1.6103 ms | 73.970 ms | 431,923 | 19000.0000 | 3000.0000 | 3000.0000 | 68751.98 KB | -| MonoGameExtended | 100000 | 57.772 ms | 1.1258 ms | 1.5781 ms | 57.590 ms | 1,134,281 | 4000.0000 | 3000.0000 | 2000.0000 | 30152.6 KB | -| LeopotamEcs | 100000 | 27.863 ms | 0.5464 ms | 0.8667 ms | 27.955 ms | 266,159 | 2000.0000 | 1000.0000 | 1000.0000 | 15734.73 KB | -| LeopotamEcsLite | 100000 | 26.626 ms | 0.3298 ms | 0.3085 ms | 26.663 ms | 155,375 | 2000.0000 | 2000.0000 | 2000.0000 | 12268.1 KB | -| RelEcs | 100000 | 156.722 ms | 1.9037 ms | 1.7807 ms | 156.616 ms | 1,946,556 | 11000.0000 | 4000.0000 | 2000.0000 | 75704.95 KB | -| SveltoECS | 100000 | 91.159 ms | 1.4635 ms | 1.3690 ms | 91.405 ms | 1,530,812 | - | - | - | 2.66 KB | +| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------- |------------ |-----------:|----------:|----------:|---------------:|------------:| +| Arch | 100000 | 14.03 ms | 0.273 ms | 0.400 ms | 63,986 | 10.16 MB | +| DefaultEcs | 100000 | 19.569 ms | 0.1750 ms | 0.1946 ms | 232,325 | 19516.31 KB | +| Entitas | 100000 | 103.717 ms | 0.5845 ms | 0.5181 ms | 1,386,701 | 61365.18 KB | +| HypEcs | 100000 | 73.461 ms | 1.3983 ms | 1.6103 ms | 431,923 | 68751.98 KB | +| MonoGameExtended | 100000 | 57.772 ms | 1.1258 ms | 1.5781 ms | 1,134,281 | 30152.6 KB | +| LeopotamEcs | 100000 | 27.863 ms | 0.5464 ms | 0.8667 ms | 266,159 | 15734.73 KB | +| LeopotamEcsLite | 100000 | 26.626 ms | 0.3298 ms | 0.3085 ms | 155,375 | 12268.1 KB | +| RelEcs | 100000 | 156.722 ms | 1.9037 ms | 1.7807 ms | 1,946,556 | 75704.95 KB | +| SveltoECS | 100000 | 91.159 ms | 1.4635 ms | 1.3690 ms | 1,530,812 | 2.66 KB | diff --git a/results/Ecs.CSharp.Benchmark.CreateEntityWithTwoComponents-report-github.md b/results/Ecs.CSharp.Benchmark.CreateEntityWithTwoComponents-report-github.md index b9982d6..fb39b13 100644 --- a/results/Ecs.CSharp.Benchmark.CreateEntityWithTwoComponents-report-github.md +++ b/results/Ecs.CSharp.Benchmark.CreateEntityWithTwoComponents-report-github.md @@ -9,14 +9,14 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co InvocationCount=1 UnrollFactor=1 ``` -| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Gen1 | Gen2 | Allocated | -|----------------- |------------ |-----------:|----------:|----------:|---------------:|-----------:|----------:|----------:|------------:| -| Arch | 100000 | 8.554 ms | 0.1666 ms | 0.2961 ms | 56,185 | - | - | - | 9910.11 KB | -| DefaultEcs | 100000 | 14.638 ms | 0.2001 ms | 0.2870 ms | 174,816 | 2000.0000 | 2000.0000 | 2000.0000 | 15417.45 KB | -| Entitas | 100000 | 99.232 ms | 1.4946 ms | 1.3980 ms | 1,287,851 | 8000.0000 | 4000.0000 | - | 59021.43 KB | -| HypEcs | 100000 | 44.893 ms | 0.8285 ms | 0.7749 ms | 360,448 | 11000.0000 | 2000.0000 | 2000.0000 | 45333.15 KB | -| LeopotamEcs | 100000 | 31.291 ms | 0.5453 ms | 0.5100 ms | 254,225 | 2000.0000 | 1000.0000 | 1000.0000 | 14709.32 KB | -| LeopotamEcsLite | 100000 | 18.763 ms | 0.1752 ms | 0.1553 ms | 118,511 | 2000.0000 | 2000.0000 | 2000.0000 | 10219.15 KB | -| MonoGameExtended | 100000 | 46.995 ms | 0.6238 ms | 0.5835 ms | 577,946 | 3000.0000 | 3000.0000 | 3000.0000 | 23372.73 KB | -| RelEcs | 100000 | 115.301 ms | 1.2339 ms | 1.0939 ms | 1,304,166 | 7000.0000 | 4000.0000 | 2000.0000 | 50750.64 KB | -| SveltoECS | 100000 | 67.121 ms | 1.2610 ms | 2.1752 ms | 1,149,821 | - | - | - | 2.16 KB | +| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------- |------------ |-----------:|----------:|----------:|---------------:|------------:| +| Arch | 100000 | 12.08 ms | 0.237 ms | 0.382 ms | 62,393 | 9.7 MB | +| DefaultEcs | 100000 | 14.638 ms | 0.2001 ms | 0.2870 ms | 174,816 | 15417.45 KB | +| Entitas | 100000 | 99.232 ms | 1.4946 ms | 1.3980 ms | 1,287,851 | 59021.43 KB | +| HypEcs | 100000 | 44.893 ms | 0.8285 ms | 0.7749 ms | 360,448 | 45333.15 KB | +| LeopotamEcs | 100000 | 31.291 ms | 0.5453 ms | 0.5100 ms | 254,225 | 14709.32 KB | +| LeopotamEcsLite | 100000 | 18.763 ms | 0.1752 ms | 0.1553 ms | 118,511 | 10219.15 KB | +| MonoGameExtended | 100000 | 46.995 ms | 0.6238 ms | 0.5835 ms | 577,946 | 23372.73 KB | +| RelEcs | 100000 | 115.301 ms | 1.2339 ms | 1.0939 ms | 1,304,166 | 50750.64 KB | +| SveltoECS | 100000 | 67.121 ms | 1.2610 ms | 2.1752 ms | 1,149,821 | 2.16 KB | diff --git a/results/Ecs.CSharp.Benchmark.SystemWithOneComponent-report-github.md b/results/Ecs.CSharp.Benchmark.SystemWithOneComponent-report-github.md index 70d8271..d0fe4b5 100644 --- a/results/Ecs.CSharp.Benchmark.SystemWithOneComponent-report-github.md +++ b/results/Ecs.CSharp.Benchmark.SystemWithOneComponent-report-github.md @@ -8,34 +8,36 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co ``` -| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Allocated | -|--------------------------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|-------:|----------:| -| Arch | 100000 | 0 | 62.59 μs | 0.005 μs | 0.004 μs | 2 | - | - | -| DefaultEcs_ComponentSystem_MonoThread | 100000 | 0 | 56.71 μs | 0.294 μs | 0.275 μs | 1 | - | - | -| DefaultEcs_ComponentSystem_MultiThread | 100000 | 0 | 15.42 μs | 0.093 μs | 0.078 μs | 1 | - | - | -| DefaultEcs_EntitySetSystem_MonoThread | 100000 | 0 | 163.55 μs | 0.030 μs | 0.027 μs | 5 | - | - | -| DefaultEcs_EntitySetSystem_MultiThread | 100000 | 0 | 43.85 μs | 0.205 μs | 0.192 μs | 4 | - | - | -| Entitas_MonoThread | 100000 | 0 | 5,100.00 μs | 15.044 μs | 14.072 μs | 291,147 | - | 109 B | -| Entitas_MultiThread | 100000 | 0 | 3,006.45 μs | 6.255 μs | 5.545 μs | 292,430 | - | 391 B | -| HypEcs_MonoThread | 100000 | 0 | 56.55 μs | 0.013 μs | 0.011 μs | 1 | - | 32 B | -| HypEcs_MultiThread | 100000 | 0 | 60.98 μs | 0.639 μs | 0.598 μs | 13 | 0.5493 | 1768 B | -| MonoGameExtended | 100000 | 0 | 991.82 μs | 0.901 μs | 0.799 μs | 3,864 | - | 163 B | -| LeopotamEcs | 100000 | 0 | 144.98 μs | 0.021 μs | 0.020 μs | 3 | - | - | -| LeopotamEcsLite | 100000 | 0 | 1,841.54 μs | 0.161 μs | 0.134 μs | 110 | - | 2 B | -| RelEcs | 100000 | 0 | 610.55 μs | 2.206 μs | 1.955 μs | 20,225 | - | 121 B | -| SveltoECS | 100000 | 0 | 197.15 μs | 0.019 μs | 0.017 μs | 3 | - | - | -| | | | | | | | | | -| Arch | 100000 | 10 | 62.67 μs | 0.008 μs | 0.006 μs | 1 | - | - | -| DefaultEcs_ComponentSystem_MonoThread | 100000 | 10 | 56.30 μs | 0.032 μs | 0.028 μs | 1 | - | - | -| DefaultEcs_ComponentSystem_MultiThread | 100000 | 10 | 15.54 μs | 0.106 μs | 0.094 μs | 1 | - | - | -| DefaultEcs_EntitySetSystem_MonoThread | 100000 | 10 | 239.65 μs | 0.347 μs | 0.289 μs | 3,375 | - | - | -| DefaultEcs_EntitySetSystem_MultiThread | 100000 | 10 | 85.18 μs | 1.075 μs | 1.006 μs | 6,398 | - | - | -| Entitas_MonoThread | 100000 | 10 | 19,214.28 μs | 117.733 μs | 110.128 μs | 365,178 | - | 148 B | -| Entitas_MultiThread | 100000 | 10 | 9,197.42 μs | 110.879 μs | 103.716 μs | 354,771 | - | 410 B | -| HypEcs_MonoThread | 100000 | 10 | 56.58 μs | 0.059 μs | 0.053 μs | 1 | - | 32 B | -| HypEcs_MultiThread | 100000 | 10 | 59.34 μs | 0.038 μs | 0.035 μs | 13 | 0.5493 | 1768 B | -| MonoGameExtended | 100000 | 10 | 2,367.73 μs | 8.416 μs | 7.460 μs | 99,607 | - | 165 B | -| LeopotamEcs | 100000 | 10 | 150.58 μs | 0.022 μs | 0.021 μs | 3 | - | - | -| LeopotamEcsLite | 100000 | 10 | 3,170.74 μs | 15.986 μs | 14.171 μs | 92,669 | - | 5 B | -| RelEcs | 100000 | 10 | 1,249.86 μs | 4.904 μs | 4.587 μs | 56,296 | - | 123 B | -| SveltoECS | 100000 | 10 | 197.13 μs | 0.032 μs | 0.025 μs | 4 | - | - | +| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|--------------------------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|----------:| +| Arch_MonoThread | 100000 | 0 | 61.74 μs | 0.009 μs | 0.008 μs | 3 | - | +| Arch_MultiThread | 100000 | 0 | 30.25 μs | 0.020 μs | 0.018 μs | 3 | - | +| DefaultEcs_ComponentSystem_MonoThread | 100000 | 0 | 56.71 μs | 0.294 μs | 0.275 μs | 1 | - | +| DefaultEcs_ComponentSystem_MultiThread | 100000 | 0 | 15.42 μs | 0.093 μs | 0.078 μs | 1 | - | +| DefaultEcs_EntitySetSystem_MonoThread | 100000 | 0 | 163.55 μs | 0.030 μs | 0.027 μs | 5 | - | +| DefaultEcs_EntitySetSystem_MultiThread | 100000 | 0 | 43.85 μs | 0.205 μs | 0.192 μs | 4 | - | +| Entitas_MonoThread | 100000 | 0 | 5,100.00 μs | 15.044 μs | 14.072 μs | 291,147 | 109 B | +| Entitas_MultiThread | 100000 | 0 | 3,006.45 μs | 6.255 μs | 5.545 μs | 292,430 | 391 B | +| HypEcs_MonoThread | 100000 | 0 | 56.55 μs | 0.013 μs | 0.011 μs | 1 | 32 B | +| HypEcs_MultiThread | 100000 | 0 | 60.98 μs | 0.639 μs | 0.598 μs | 13 | 1768 B | +| MonoGameExtended | 100000 | 0 | 991.82 μs | 0.901 μs | 0.799 μs | 3,864 | 163 B | +| LeopotamEcs | 100000 | 0 | 144.98 μs | 0.021 μs | 0.020 μs | 3 | - | +| LeopotamEcsLite | 100000 | 0 | 1,841.54 μs | 0.161 μs | 0.134 μs | 110 | 2 B | +| RelEcs | 100000 | 0 | 610.55 μs | 2.206 μs | 1.955 μs | 20,225 | 121 B | +| SveltoECS | 100000 | 0 | 197.15 μs | 0.019 μs | 0.017 μs | 3 | - | +| | | | | | | | | +| Arch_MonoThread | 100000 | 10 | 61.75 μs | 0.022 μs | 0.018 μs | 2 | - | +| Arch_MultiThread | 100000 | 10 | 30.18 μs | 0.034 μs | 0.032 μs | 3 | - | +| DefaultEcs_ComponentSystem_MonoThread | 100000 | 10 | 56.30 μs | 0.032 μs | 0.028 μs | 1 | - | +| DefaultEcs_ComponentSystem_MultiThread | 100000 | 10 | 15.54 μs | 0.106 μs | 0.094 μs | 1 | - | +| DefaultEcs_EntitySetSystem_MonoThread | 100000 | 10 | 239.65 μs | 0.347 μs | 0.289 μs | 3,375 | - | +| DefaultEcs_EntitySetSystem_MultiThread | 100000 | 10 | 85.18 μs | 1.075 μs | 1.006 μs | 6,398 | - | +| Entitas_MonoThread | 100000 | 10 | 19,214.28 μs | 117.733 μs | 110.128 μs | 365,178 | 148 B | +| Entitas_MultiThread | 100000 | 10 | 9,197.42 μs | 110.879 μs | 103.716 μs | 354,771 | 410 B | +| HypEcs_MonoThread | 100000 | 10 | 56.58 μs | 0.059 μs | 0.053 μs | 1 | 32 B | +| HypEcs_MultiThread | 100000 | 10 | 59.34 μs | 0.038 μs | 0.035 μs | 13 | 1768 B | +| MonoGameExtended | 100000 | 10 | 2,367.73 μs | 8.416 μs | 7.460 μs | 99,607 | 165 B | +| LeopotamEcs | 100000 | 10 | 150.58 μs | 0.022 μs | 0.021 μs | 3 | - | +| LeopotamEcsLite | 100000 | 10 | 3,170.74 μs | 15.986 μs | 14.171 μs | 92,669 | 5 B | +| RelEcs | 100000 | 10 | 1,249.86 μs | 4.904 μs | 4.587 μs | 56,296 | 123 B | +| SveltoECS | 100000 | 10 | 197.13 μs | 0.032 μs | 0.025 μs | 4 | - | diff --git a/results/Ecs.CSharp.Benchmark.SystemWithThreeComponents-report-github.md b/results/Ecs.CSharp.Benchmark.SystemWithThreeComponents-report-github.md index ec34074..2f734a4 100644 --- a/results/Ecs.CSharp.Benchmark.SystemWithThreeComponents-report-github.md +++ b/results/Ecs.CSharp.Benchmark.SystemWithThreeComponents-report-github.md @@ -8,33 +8,35 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co ``` -| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Allocated | -|----------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|-------:|----------:| -| Arch | 100000 | 0 | 114.32 μs | 0.016 μs | 0.014 μs | 5 | - | - | -| DefaultEcs_MonoThread | 100000 | 0 | 388.85 μs | 0.182 μs | 0.142 μs | 36 | - | 1 B | -| DefaultEcs_MultiThread | 100000 | 0 | 104.02 μs | 0.399 μs | 0.333 μs | 40 | - | - | -| Entitas_MonoThread | 100000 | 0 | 4,341.06 μs | 7.976 μs | 7.460 μs | 344,337 | - | 109 B | -| Entitas_MultiThread | 100000 | 0 | 3,107.05 μs | 10.689 μs | 8.926 μs | 401,718 | - | 391 B | -| HypEcs_MonoThread | 100000 | 0 | 85.27 μs | 0.012 μs | 0.011 μs | 3 | - | 32 B | -| HypEcs_MultiThread | 100000 | 0 | 88.09 μs | 0.049 μs | 0.043 μs | 14 | 0.4883 | 1768 B | -| LeopotamEcs | 100000 | 0 | 788.61 μs | 0.211 μs | 0.165 μs | 38 | - | 1 B | -| LeopotamEcsLite | 100000 | 0 | 5,533.31 μs | 4.068 μs | 3.805 μs | 1,515 | - | 11 B | -| MonoGameExtended | 100000 | 0 | 1,373.25 μs | 27.121 μs | 27.851 μs | 24,487 | - | 163 B | -| RelEcs | 100000 | 0 | 939.20 μs | 1.915 μs | 1.791 μs | 38,063 | - | 217 B | -| SveltoECS | 100000 | 0 | 450.23 μs | 0.060 μs | 0.056 μs | 13 | - | 1 B | -| | | | | | | | | | -| Arch | 100000 | 10 | 114.45 μs | 0.082 μs | 0.073 μs | 8 | - | - | -| DefaultEcs_MonoThread | 100000 | 10 | 1,248.00 μs | 1.669 μs | 1.480 μs | 72,302 | - | 3 B | -| DefaultEcs_MultiThread | 100000 | 10 | 970.12 μs | 3.348 μs | 2.968 μs | 119,385 | - | 1 B | -| Entitas_MonoThread | 100000 | 10 | 19,309.45 μs | 121.756 μs | 113.891 μs | 624,546 | - | 148 B | -| Entitas_MultiThread | 100000 | 10 | 9,456.08 μs | 138.433 μs | 122.718 μs | 620,781 | - | 410 B | -| HypEcs_MonoThread | 100000 | 10 | 84.80 μs | 0.009 μs | 0.008 μs | 2 | - | 32 B | -| HypEcs_MultiThread | 100000 | 10 | 87.68 μs | 0.066 μs | 0.058 μs | 17 | 0.4883 | 1768 B | -| LeopotamEcs | 100000 | 10 | 364.92 μs | 0.946 μs | 0.838 μs | 1,857 | - | 1 B | -| LeopotamEcsLite | 100000 | 10 | 11,141.80 μs | 44.407 μs | 41.538 μs | 113,341 | - | 17 B | -| MonoGameExtended | 100000 | 10 | 4,032.95 μs | 9.810 μs | 8.697 μs | 219,729 | - | 171 B | -| RelEcs | 100000 | 10 | 2,270.26 μs | 4.858 μs | 4.306 μs | 175,250 | - | 221 B | -| SveltoECS | 100000 | 10 | NA | NA | NA | - | - | - | +| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|----------:| +| Arch_MonoThread | 100000 | 0 | 111.44 μs | 0.025 μs | 0.022 μs | 8 | - | +| Arch_MultiThread | 100000 | 0 | 41.68 μs | 0.061 μs | 0.054 μs | 7 | - | +| DefaultEcs_MonoThread | 100000 | 0 | 388.85 μs | 0.182 μs | 0.142 μs | 36 | 1 B | +| DefaultEcs_MultiThread | 100000 | 0 | 104.02 μs | 0.399 μs | 0.333 μs | 40 | - | +| Entitas_MonoThread | 100000 | 0 | 4,341.06 μs | 7.976 μs | 7.460 μs | 344,337 | 109 B | +| Entitas_MultiThread | 100000 | 0 | 3,107.05 μs | 10.689 μs | 8.926 μs | 401,718 | 391 B | +| HypEcs_MonoThread | 100000 | 0 | 85.27 μs | 0.012 μs | 0.011 μs | 3 | 32 B | +| HypEcs_MultiThread | 100000 | 0 | 88.09 μs | 0.049 μs | 0.043 μs | 14 | 1768 B | +| LeopotamEcs | 100000 | 0 | 788.61 μs | 0.211 μs | 0.165 μs | 38 | 1 B | +| LeopotamEcsLite | 100000 | 0 | 5,533.31 μs | 4.068 μs | 3.805 μs | 1,515 | 11 B | +| MonoGameExtended | 100000 | 0 | 1,373.25 μs | 27.121 μs | 27.851 μs | 24,487 | 163 B | +| RelEcs | 100000 | 0 | 939.20 μs | 1.915 μs | 1.791 μs | 38,063 | 217 B | +| SveltoECS | 100000 | 0 | 450.23 μs | 0.060 μs | 0.056 μs | 13 | 1 B | +| | | | | | | | | +| Arch_MonoThread | 100000 | 10 | 111.59 μs | 0.432 μs | 0.404 μs | 6 | - | +| Arch_MultiThread | 100000 | 10 | 42.05 μs | 0.029 μs | 0.025 μs | 7 | - | +| DefaultEcs_MonoThread | 100000 | 10 | 1,248.00 μs | 1.669 μs | 1.480 μs | 72,302 | 3 B | +| DefaultEcs_MultiThread | 100000 | 10 | 970.12 μs | 3.348 μs | 2.968 μs | 119,385 | 1 B | +| Entitas_MonoThread | 100000 | 10 | 19,309.45 μs | 121.756 μs | 113.891 μs | 624,546 | 148 B | +| Entitas_MultiThread | 100000 | 10 | 9,456.08 μs | 138.433 μs | 122.718 μs | 620,781 | 410 B | +| HypEcs_MonoThread | 100000 | 10 | 84.80 μs | 0.009 μs | 0.008 μs | 2 | 32 B | +| HypEcs_MultiThread | 100000 | 10 | 87.68 μs | 0.066 μs | 0.058 μs | 17 | 1768 B | +| LeopotamEcs | 100000 | 10 | 364.92 μs | 0.946 μs | 0.838 μs | 1,857 | 1 B | +| LeopotamEcsLite | 100000 | 10 | 11,141.80 μs | 44.407 μs | 41.538 μs | 113,341 | 17 B | +| MonoGameExtended | 100000 | 10 | 4,032.95 μs | 9.810 μs | 8.697 μs | 219,729 | 171 B | +| RelEcs | 100000 | 10 | 2,270.26 μs | 4.858 μs | 4.306 μs | 175,250 | 221 B | +| SveltoECS | 100000 | 10 | NA | NA | NA | - | - | Benchmarks with issues: SystemWithThreeComponents.SveltoECS: DefaultJob [EntityCount=100000, EntityPadding=10] diff --git a/results/Ecs.CSharp.Benchmark.SystemWithTwoComponents-report-github.md b/results/Ecs.CSharp.Benchmark.SystemWithTwoComponents-report-github.md index 857f88a..4d11e22 100644 --- a/results/Ecs.CSharp.Benchmark.SystemWithTwoComponents-report-github.md +++ b/results/Ecs.CSharp.Benchmark.SystemWithTwoComponents-report-github.md @@ -8,30 +8,32 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co ``` -| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Allocated | -|----------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|-------:|----------:| -| Arch | 100000 | 0 | 92.67 μs | 0.011 μs | 0.010 μs | 3 | - | - | -| DefaultEcs_MonoThread | 100000 | 0 | 254.98 μs | 0.070 μs | 0.062 μs | 17 | - | 1 B | -| DefaultEcs_MultiThread | 100000 | 0 | 67.94 μs | 0.334 μs | 0.296 μs | 9 | - | - | -| Entitas_MonoThread | 100000 | 0 | 4,494.22 μs | 6.044 μs | 5.047 μs | 318,174 | - | 109 B | -| Entitas_MultiThread | 100000 | 0 | 2,955.39 μs | 3.150 μs | 2.630 μs | 342,963 | - | 391 B | -| HypEcs_MonoThread | 100000 | 0 | 57.91 μs | 0.012 μs | 0.011 μs | 1 | - | 32 B | -| HypEcs_MultiThread | 100000 | 0 | 60.54 μs | 0.032 μs | 0.030 μs | 11 | 0.5493 | 1768 B | -| LeopotamEcs | 100000 | 0 | 237.02 μs | 0.027 μs | 0.021 μs | 6 | - | - | -| LeopotamEcsLite | 100000 | 0 | 3,636.00 μs | 0.981 μs | 0.918 μs | 553 | - | 5 B | -| MonoGameExtended | 100000 | 0 | 1,123.42 μs | 1.547 μs | 1.371 μs | 10,375 | - | 163 B | -| RelEcs | 100000 | 0 | 722.21 μs | 1.196 μs | 1.060 μs | 21,993 | - | 169 B | -| SveltoECS | 100000 | 0 | 337.62 μs | 0.040 μs | 0.033 μs | 6 | - | 1 B | -| | | | | | | | | | -| Arch | 100000 | 10 | 92.74 μs | 0.174 μs | 0.163 μs | 3 | - | - | -| DefaultEcs_MonoThread | 100000 | 10 | 877.28 μs | 2.192 μs | 2.051 μs | 54,839 | - | 1 B | -| DefaultEcs_MultiThread | 100000 | 10 | 690.97 μs | 3.071 μs | 2.873 μs | 77,094 | - | 1 B | -| Entitas_MonoThread | 100000 | 10 | 26,543.85 μs | 115.030 μs | 96.055 μs | 529,161 | - | 148 B | -| Entitas_MultiThread | 100000 | 10 | 12,538.19 μs | 131.537 μs | 116.605 μs | 522,332 | - | 410 B | -| HypEcs_MonoThread | 100000 | 10 | 57.91 μs | 0.010 μs | 0.008 μs | 1 | - | 32 B | -| HypEcs_MultiThread | 100000 | 10 | 60.37 μs | 0.040 μs | 0.037 μs | 11 | 0.5493 | 1768 B | -| LeopotamEcs | 100000 | 10 | 273.84 μs | 0.580 μs | 0.514 μs | 2,712 | - | 1 B | -| LeopotamEcsLite | 100000 | 10 | 8,343.90 μs | 35.922 μs | 33.602 μs | 109,420 | - | 22 B | -| MonoGameExtended | 100000 | 10 | 3,485.78 μs | 7.650 μs | 6.782 μs | 162,094 | - | 165 B | -| RelEcs | 100000 | 10 | 1,784.00 μs | 5.825 μs | 5.449 μs | 104,660 | - | 171 B | -| SveltoECS | 100000 | 10 | 2,036.52 μs | 0.700 μs | 0.584 μs | 712 | - | 5 B | +| Method | EntityCount | EntityPadding | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------------- |------------ |-------------- |-------------:|-----------:|-----------:|---------------:|----------:| +| Arch_MonoThread | 100000 | 0 | 91.48 μs | 0.009 μs | 0.009 μs | 3 | - | +| Arch_MultiThread | 100000 | 0 | 36.82 μs | 0.088 μs | 0.074 μs | 5 | - | +| DefaultEcs_MonoThread | 100000 | 0 | 254.98 μs | 0.070 μs | 0.062 μs | 17 | 1 B | +| DefaultEcs_MultiThread | 100000 | 0 | 67.94 μs | 0.334 μs | 0.296 μs | 9 | - | +| Entitas_MonoThread | 100000 | 0 | 4,494.22 μs | 6.044 μs | 5.047 μs | 318,174 | 109 B | +| Entitas_MultiThread | 100000 | 0 | 2,955.39 μs | 3.150 μs | 2.630 μs | 342,963 | 391 B | +| HypEcs_MonoThread | 100000 | 0 | 57.91 μs | 0.012 μs | 0.011 μs | 1 | 32 B | +| HypEcs_MultiThread | 100000 | 0 | 60.54 μs | 0.032 μs | 0.030 μs | 11 | 1768 B | +| LeopotamEcs | 100000 | 0 | 237.02 μs | 0.027 μs | 0.021 μs | 6 | - | +| LeopotamEcsLite | 100000 | 0 | 3,636.00 μs | 0.981 μs | 0.918 μs | 553 | 5 B | +| MonoGameExtended | 100000 | 0 | 1,123.42 μs | 1.547 μs | 1.371 μs | 10,375 | 163 B | +| RelEcs | 100000 | 0 | 722.21 μs | 1.196 μs | 1.060 μs | 21,993 | 169 B | +| SveltoECS | 100000 | 0 | 337.62 μs | 0.040 μs | 0.033 μs | 6 | 1 B | +| | | | | | | | | +| Arch_MonoThread | 100000 | 10 | 91.49 μs | 0.041 μs | 0.034 μs | 4 | - | +| Arch_MultiThread | 100000 | 10 | 36.88 μs | 0.062 μs | 0.052 μs | 4 | - | +| DefaultEcs_MonoThread | 100000 | 10 | 877.28 μs | 2.192 μs | 2.051 μs | 54,839 | 1 B | +| DefaultEcs_MultiThread | 100000 | 10 | 690.97 μs | 3.071 μs | 2.873 μs | 77,094 | 1 B | +| Entitas_MonoThread | 100000 | 10 | 26,543.85 μs | 115.030 μs | 96.055 μs | 529,161 | 148 B | +| Entitas_MultiThread | 100000 | 10 | 12,538.19 μs | 131.537 μs | 116.605 μs | 522,332 | 410 B | +| HypEcs_MonoThread | 100000 | 10 | 57.91 μs | 0.010 μs | 0.008 μs | 1 | 32 B | +| HypEcs_MultiThread | 100000 | 10 | 60.37 μs | 0.040 μs | 0.037 μs | 11 | 1768 B | +| LeopotamEcs | 100000 | 10 | 273.84 μs | 0.580 μs | 0.514 μs | 2,712 | 1 B | +| LeopotamEcsLite | 100000 | 10 | 8,343.90 μs | 35.922 μs | 33.602 μs | 109,420 | 22 B | +| MonoGameExtended | 100000 | 10 | 3,485.78 μs | 7.650 μs | 6.782 μs | 162,094 | 165 B | +| RelEcs | 100000 | 10 | 1,784.00 μs | 5.825 μs | 5.449 μs | 104,660 | 171 B | +| SveltoECS | 100000 | 10 | 2,036.52 μs | 0.700 μs | 0.584 μs | 712 | 5 B | diff --git a/results/Ecs.CSharp.Benchmark.SystemWithTwoComponentsMultipleComposition-report-github.md b/results/Ecs.CSharp.Benchmark.SystemWithTwoComponentsMultipleComposition-report-github.md index 1fe982c..8566e00 100644 --- a/results/Ecs.CSharp.Benchmark.SystemWithTwoComponentsMultipleComposition-report-github.md +++ b/results/Ecs.CSharp.Benchmark.SystemWithTwoComponentsMultipleComposition-report-github.md @@ -8,17 +8,18 @@ Intel Core i5-3570K CPU 3.40GHz (Ivy Bridge), 1 CPU, 4 logical and 4 physical co ``` -| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Gen0 | Allocated | -|----------------------- |------------ |------------:|----------:|----------:|---------------:|-------:|----------:| -| Arch | 100000 | 92.85 μs | 0.011 μs | 0.010 μs | 2 | - | - | -| DefaultEcs_MonoThread | 100000 | 259.89 μs | 0.050 μs | 0.044 μs | 9 | - | 1 B | -| DefaultEcs_MultiThread | 100000 | 69.55 μs | 0.285 μs | 0.253 μs | 6 | - | - | -| Entitas_MonoThread | 100000 | 4,839.97 μs | 31.857 μs | 29.799 μs | 340,754 | - | 112 B | -| Entitas_MultiThread | 100000 | 3,101.55 μs | 6.627 μs | 5.874 μs | 371,259 | - | 392 B | -| HypEcs_MonoThread | 100000 | 57.99 μs | 0.008 μs | 0.007 μs | 1 | - | 32 B | -| HypEcs_MultiThread | 100000 | 21.70 μs | 0.124 μs | 0.116 μs | 10 | 0.7324 | 2294 B | -| LeopotamEcs | 100000 | 241.88 μs | 0.038 μs | 0.035 μs | 4 | - | - | -| LeopotamEcsLite | 100000 | 3,630.12 μs | 1.905 μs | 1.782 μs | 566 | - | 7 B | -| MonoGameExtended | 100000 | 1,230.32 μs | 1.309 μs | 1.161 μs | 24,422 | - | 163 B | -| RelEcs | 100000 | 1,581.50 μs | 3.828 μs | 3.196 μs | 83,004 | - | 491 B | -| SveltoECS | 100000 | 337.63 μs | 0.057 μs | 0.054 μs | 6 | - | 1 B | +| Method | EntityCount | Mean | Error | StdDev | CacheMisses/Op | Allocated | +|----------------------- |------------ |------------:|----------:|----------:|---------------:|----------:| +| Arch | 100000 | 91.47 μs | 0.116 μs | 0.102 μs | 6 | - | +| Arch_MultiThread | 100000 | 59.92 μs | 0.126 μs | 0.118 μs | 9 | - | +| DefaultEcs_MonoThread | 100000 | 259.89 μs | 0.050 μs | 0.044 μs | 9 | 1 B | +| DefaultEcs_MultiThread | 100000 | 69.55 μs | 0.285 μs | 0.253 μs | 6 | - | +| Entitas_MonoThread | 100000 | 4,839.97 μs | 31.857 μs | 29.799 μs | 340,754 | 112 B | +| Entitas_MultiThread | 100000 | 3,101.55 μs | 6.627 μs | 5.874 μs | 371,259 | 392 B | +| HypEcs_MonoThread | 100000 | 57.99 μs | 0.008 μs | 0.007 μs | 1 | 32 B | +| HypEcs_MultiThread | 100000 | 21.70 μs | 0.124 μs | 0.116 μs | 10 | 2294 B | +| LeopotamEcs | 100000 | 241.88 μs | 0.038 μs | 0.035 μs | 4 | - | +| LeopotamEcsLite | 100000 | 3,630.12 μs | 1.905 μs | 1.782 μs | 566 | 7 B | +| MonoGameExtended | 100000 | 1,230.32 μs | 1.309 μs | 1.161 μs | 24,422 | 163 B | +| RelEcs | 100000 | 1,581.50 μs | 3.828 μs | 3.196 μs | 83,004 | 491 B | +| SveltoECS | 100000 | 337.63 μs | 0.057 μs | 0.054 μs | 6 | 1 B | diff --git a/source/Ecs.CSharp.Benchmark/Context/ArchBaseContext.cs b/source/Ecs.CSharp.Benchmark/Context/ArchBaseContext.cs index e35671d..14f068b 100644 --- a/source/Ecs.CSharp.Benchmark/Context/ArchBaseContext.cs +++ b/source/Ecs.CSharp.Benchmark/Context/ArchBaseContext.cs @@ -1,6 +1,5 @@ using System; using Arch.Core; -using JobScheduler = JobScheduler.JobScheduler; namespace Ecs.CSharp.Benchmark.Context { @@ -25,7 +24,7 @@ internal struct Component3 internal class ArchBaseContext : IDisposable { public World World { get; } - public global::JobScheduler.JobScheduler JobScheduler { get; set; } + public JobScheduler.JobScheduler JobScheduler { get; set; } public ArchBaseContext() { @@ -34,7 +33,7 @@ public ArchBaseContext() public ArchBaseContext(Type[] archetype, int amount) { - JobScheduler = new global::JobScheduler.JobScheduler("Arch"); + JobScheduler = new JobScheduler.JobScheduler("Arch"); World = World.Create(); World.Reserve(archetype, amount); diff --git a/source/Ecs.CSharp.Benchmark/CreateEntityWithThreeComponents/Arch.cs b/source/Ecs.CSharp.Benchmark/CreateEntityWithThreeComponents/Arch.cs index 6bfea74..71d6670 100644 --- a/source/Ecs.CSharp.Benchmark/CreateEntityWithThreeComponents/Arch.cs +++ b/source/Ecs.CSharp.Benchmark/CreateEntityWithThreeComponents/Arch.cs @@ -12,7 +12,7 @@ public partial class CreateEntityWithThreeComponents [Context] private readonly ArchBaseContext _arch; - [BenchmarkCategory(Categories.Entitas)] + [BenchmarkCategory(Categories.Arch)] [Benchmark] public void Arch() { diff --git a/source/Ecs.CSharp.Benchmark/SystemWithTwoComponentsMultipleComposition/Arch.cs b/source/Ecs.CSharp.Benchmark/SystemWithTwoComponentsMultipleComposition/Arch.cs index 5299e60..9709a95 100644 --- a/source/Ecs.CSharp.Benchmark/SystemWithTwoComponentsMultipleComposition/Arch.cs +++ b/source/Ecs.CSharp.Benchmark/SystemWithTwoComponentsMultipleComposition/Arch.cs @@ -31,7 +31,7 @@ private record struct Padding4(); public ArchContext(int entityCount) { - JobScheduler = new global::JobScheduler.JobScheduler("Arch"); + JobScheduler = new JobScheduler.JobScheduler("Arch"); Type[] paddingTypes = new[] { typeof(Padding1),