First of all, ECS, the job system and Burst are an amazing collection of technology that I can only praise highly. Just today I noticed that I forgot to put the ComputeJobOptimization tag on one of my jobs and almost couldn't believe it as I watched the job vanish in the profiler timeline. Now to my question: My problem is as follows; I use one IJobParallelFor to fill a NativeArray with what is basically a bool1 for each Entity in an ECS system. For each bool1 in that array that is equal to true, some Entities need to be created and destroyed, which is done in a separate IJob because EntityCommandBuffer is not (yet?) supported by Burst. The IJob takes up a lot of time because it iterates over all entries (even if they don't need to be processed). So how would one approach reducing the array to only the relevant entries in a (burst, parallel for) job in an efficient way? Some things I tried: - Using an IJobParallelForFilter (of which I don't clearly understand how it works) to filter for the relevant indices (?). But that wasn't faster than the other IJob and using Burst on it only crashed my editor. - Doing some (naive) sorting but that obliterated the performance. Edit: Maybe there is a solution which involves avoiding creating redundant entries. If so I would be glad to hear it, though it would probably need to avoid issues with parallel adding into a list.