Closed flyxiv closed 1 month ago
we only search for ogcd on the highest possible first ogcd. If there is no skill that can be casted with that first ogcd we just early return as a one-ogcd turn.
too much memory resource is being used in actually simulating possible events, which causes cloning and dropping. We make simulating done by pointers to minimize memory usage
Optimized simulation cloning. Now speed is 14s <- 20s (30% faster)
The next skill optimizer part reduced heavily
The number of buffs/turns/damage events are almost identical (5min fight, 8man party)
Before, we updated skill CD/status remaining time every time the clock moved. But we figured out that we only need to update time whenever it is a player's turn to handle an event.
So we just accumulate the elapsed time until that player's turn to handle an event comes, and then we update the time components of the character.
15s -> 10s, another 30% gain
We need to increase number of simulation to reduce variation of results.
We're already at 1000, but at least x5 should be done.
To do this, we're squeezing out every last bit of optimization we can do.