I’m making performance tests with ECS and a bunch of custom entities.
I have an archetype with Translation and a “MoveSpeedComponent”:
public struct MoveSpeedComponent : IComponentData {
public float moveSpeed;
}
I have implemented a “MoverSystem” that updates the translation applying the movement at certain speed, nothing fancy.
I’ve imlpemented in three different ways:
- As a IJobChunk
- As a “plain” Job? I don’t know how is that named, like this:
public class MoverSystem : JobComponentSystem
{
[BurstCompile]
struct MoverSystemJob : IJobForEach<MoveSpeedComponent, Translation>
....
}
- As a Component system
I didn’t notice any performance improvement between them, I’ve tested it in Debug and Release Mode, I tried activating / deactivating Jobs’ Leak detection, Burst’s Safety Checks and other options without any luck.
In release mode I can spawn about 3K-4K entities, above that FPS drops below 30 fps.
I was expecting to have much more using Jobs.
Am I doing something wrong?
5068739–498227–MoverSystem.cs (3.75 KB)