Taskbrowser refresh is way too slow
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GTG |
Fix Released
|
High
|
Bertrand Rousseau |
Bug Description
Hey,
I recently stumble upon GTG and liked it instantly. Unluckily I have now discovered (after filling 200+ taks via the quick add entry) that it is too slow to be used productively.
- Filling the task on startup takes rather long. There should be nothing complicated to it...
- Typing a word in the note name row freezes GTG for ~2seconds. The same applies for adding a tag by typing @..
- Filtering of tags takes ~1 seconds, but this should happen instantly
I only had a short look at your code and saw threading, locking code and a refresh method. Is that really needed?
Often in such simple applications pseudo threads via python generators and gobject.idle_add are more than sufficient.
IMHO performance could be improved by several orders of magnitude if you use a proper GTKTreeModel. With this at hand you don't need to care about updating or redrawing your stuff. You should also consider wrapping your file/source abstraction in a custom GTKModel that yields the correct signals when required (not that difficult...)
I haven't looked at what happends when you add a tag. But maybe you can only do (what ever you currently do) when I hit enter/linefeed or close the window.
Thanks and best Regards,
steve-e
Changed in gtg: | |
status: | Fix Committed → Fix Released |
Hi Steve,
There's indeed a lot of performance problems and I personnaly want to take care of them for 0.2. In fact, our biggest problems before 0.1 was the parsing in the editor and this was properly addressed. Now, we need to work on the task browser. All the problems you're describing are the refreshing of the taskbrowser : when you modify the title, enter a tag or filter on tag, this trigger a refresh of the browser.
I'm interesed by your insight about TreeModel because it's something I can't find intuitive. I agree that our taskbrowser is suboptimal so any help there would be greatly appreciated.