Axel Dörfler wrote:
"Jorge G. Mare" <koki@xxxxxxxxxxxxx> wrote:Back in the day, when I used to demo ZETA at various events and conferences (remember the good old days BGA?! :) ), that's exactly what I used to do: I had 30 - 40K emails, I would run queries with multiple criteria that would give me anything between a few dozen to several hundred hits, and it worked reasonably well to support the claim of live queries. You make it sound like only a miracle would make this possible in Haiku, but I think it's more a matter of giving the devs time to resolve the existing issues; hopefully I am not being naively optimistic here... :)There is currently obviously a snooze() in Tracker that makes it so slow (IIRC). Queries from the Terminal are magnitudes faster. The speed problem Joachim mentioned stems from 1000s of results, not 10000s of mails total. And that will continue to be a problem.
I've been doing some experiments and benchmarks recently that follows previous work on this (yes the performance was exponentially worse before, but that work had to be put on low priority considering the more important crashing bugs to fix). After working and being really pleased with queries in a console experiment, i was motivated again and added some in-code benchmarking to try new things and obtained those theoretic terminal-like response times. (for those who want an idea, jam live_query and admire your favorite OS). So it's definitely doable, but needs some reimplementations in some places.One of the remaining culprits for example is the insertion sort that seems to
be terribly inefficient either graphically or in the data structure. I will resume that work soon although (for those who don't know) even after months of bug fixing, cleaning, and light restructuring, it's a real nightmare to do anything in the fragile Tracker code, so wish me luck :) Now talking about snooze, actually there is a half millisecond snooze each 50 pose, that i was forced to introduce as a workaround, like a year ago, that was needed to prevent some serious (and mysterious) lockups after fixing another bug in the threaded pose loading. After the recent fixes (code sprint) to the ports system which might be unrelated btw, i decided to reconsider this and after testing for a few days, it seems we can do without now. However this only accounts for a very small (and linear) fraction of the slowdown, the real problems are in the paragraph before :) Regards, Alex