Performance Degradation - Saving characters - Skill churn
Description
From :
Just got the 6.1.10 beta to test things out. So far so good, but I have noticed one change: saving characters seems to take more time than it used to. It's gone from nearly instantaneous in 6.1.8 to taking a second or two in 6.1.10.
From :
I've noticed the change as well, only for me its more like 4-7 seconds.
From
As mentioned on the pcgen mailing list, here's a basic test character
for the issue encountered on saves.
As a reminder, before adding the class level, it's fast (though slower
than previous versions – half a second maybe?). After adding the
level, it takes about 2 seconds on my machine, with the hourglass
mouse pointer and all. Clicking save used to be so fast that I
sometimes wondered if it had actually saved, so it's quite the
difference
Environment
Activity
The issue is that under the new default skills output scheme (usable skills), the unchanged conditional skills were being added and removed each save. This caused a slowdown, particularly in Pathfinder with its approx 100 conditional skills, due to each add or remove
Triggering a UI data refresh, including a recalc of all skill bonuses; and
A potential skills sheet refresh.
I've fixed this by:
a) Caching the total bonus for qualified bonus types, so the cached value is used each time until the next time the bonuses are rebuilt; and
b) Removing unqualified skills (usually conditional skills) from those being added to the 'usable' list, thus giving a stable skill list.