Maximize distance between exclusive systems #12153
Labels
A-ECS
Entities, components, systems, and events
C-Performance
A change motivated by improving speed, memory usage or compile times
What problem does this solve or what need does it fill?
After #11845,
handle_internal_asset_events
, an exclusive system, was moved toPreUpdate
, however, due to it's ordering constraint, all of theTrackAssets
events cannot start until it's done. However, the exclusive system conflicts with every other system that is topologically sorted before it, so it can't start until all of them are finished. Even though there is no strict ordering constraint between the exclusive system and the systems running before it, it will prevent these two groups of systems from running in parallel with each other, which may have a performance cost.What solution would you like?
Change the topological sort on a schedule's system to maximize the number of systems that can parallelize together by forcing exclusive systems apart as much as possible.
This was already done for
apply_deferred
, perhaps the same logic can be applied to other exclusive systems as well?What alternative(s) have you considered?
Leaving it as is.
The text was updated successfully, but these errors were encountered: