Frank Niessink wrote: > I've been working on better performance. Task Coach no longer uses the > treemixin module. The "virtual" treemixin was pretty slow, slower even > than simply recreating the tree whenever it changes. So I've > simplified the tree controls. They now simply recreate the whole tree > whenever items are added or removed or when the sort order changes.
> I think it's a bit faster now, but the difference is not that big. So, > I want to introduce one more optimization by only adding children to > tree items when the parent item is actually expanded. Compared to the last time I tried, there are huge improvements. Showing completed tasks on my work todo list used to take minutes; now it takes about 6 seconds (to show 835 tasks). There are some actions that take much longer (~6s) when all 835 tasks are shown: * Opening the "View" menu * Marking a task complete/deleting it/creating a new one Putting some traces, I can see that the ~6s are spent (when showing completed tasks) in RefreshAll(). Unfortunately, the HyperTreeCtrl control does not have a Freeze/Thaw pair (other than the one inherited from wx.Control), which would probably help. I'll try a quick hack to see if it does. Cheers Jérôme
