Abuse-Case Physics Timing
Posted: Sun Feb 12, 2017 12:35 pm
This is not my use case; this is my abuse case: I'm testing the limits of some features while working on related things.
I spawned 10,000 sphere-shape entities into a BEPU World that, aside from the spheres, consists of a /humongous/ static box for them to all land on.
The stats for how that went confuse me:
Pre-Spawn: Frame time is 15ms due to random things running including BEPU itself
Spawn: World freezes for about a second, ms frame time spike momentarily
After the freeze ends: about 30-50 ms times
landing on the box: another freeze, shorter, about 500ms frame time
Idling afterwards: ... about 30-50 ms times
Do you see my question here?
How is that free falling spheres x10k has the same frame time approximates as fully idling spheres?
I checked earlier to confirm that they were all deactivating properly (which is a checking operating that takes 10ms minimum in itself), which they were, quite rapidly, after I applied settings like "DeactivationManager.MaximumDeactivationAttemptsPerFrame = 1000;" and some other adjustments.
So I'm wondering, why is a deactivated entity as heavy as an entity moving in freefall?
Surely the falling ones have to do some amount of motion tracing and calculations, and the deactivated ones can do nothing at all (potentially even be removed from the list of things that need ticking?)
I spawned 10,000 sphere-shape entities into a BEPU World that, aside from the spheres, consists of a /humongous/ static box for them to all land on.
The stats for how that went confuse me:
Pre-Spawn: Frame time is 15ms due to random things running including BEPU itself
Spawn: World freezes for about a second, ms frame time spike momentarily
After the freeze ends: about 30-50 ms times
landing on the box: another freeze, shorter, about 500ms frame time
Idling afterwards: ... about 30-50 ms times
Do you see my question here?
How is that free falling spheres x10k has the same frame time approximates as fully idling spheres?
I checked earlier to confirm that they were all deactivating properly (which is a checking operating that takes 10ms minimum in itself), which they were, quite rapidly, after I applied settings like "DeactivationManager.MaximumDeactivationAttemptsPerFrame = 1000;" and some other adjustments.
So I'm wondering, why is a deactivated entity as heavy as an entity moving in freefall?
Surely the falling ones have to do some amount of motion tracing and calculations, and the deactivated ones can do nothing at all (potentially even be removed from the list of things that need ticking?)