Background: The data team have recoded dragons to a much smaller number of races and with a much higher number of calculations.
I tried to consolidate Age based abilities into one ability to cut down on the number of PRExxx evaluations (Stat Increases, Size Increases, Abilities, etc.) And then Size based abilities, But I've found no significant improvement in performance.
LOG Generated during lag
I've isolated the performance issue to a problem with skills with prereqs. Removing these brings the output phase down to a few seconds. I will now work out a way to accommodate these efficiently in the code.
PS: I've trimmed this issue down to a single report - one problem per report please - roll-up issues never get closed.
I have made some optimizations and would be interested in how it has affected the performance for you.
Cached skill list lookups as it is quite expensive with all the conditional skills
Removed some setdirty calls that were unnecessary and causing excessive recalculations
That is night and day difference there . 5 Seconds to refresh on the Summary Screen vs. 5+ minutes AND I'm getting all the correct information now! Character Sheet, 3 seconds on each sheet, as opposed to 10 to 20 minutes with incorrect and missing information.
This fix is amazing:
SUBRACE is displaying the correct information
NaturalAttacks are displaying again.
DEFINES and VARs also working again! Best fix EVER!