> I'd be curious to see the same test in C, if someone(TM) had the time.
My C is a bit rusty, but I gave Claude a whirl and it generated something that
did the job perfectly. The difference was not quite as stark, but thread
queries were still ~50% slower.
I've attached the code Claude generated for the curious — run as
./notmuch-bench-something ~/.notmuch-db "date:2025"
> I agree twice as slow is not reasonable. I do expect it to be slower
> because of extra work that notmuch is doing (outside xapian) to
> construct the thread structures (parenting nodes turns out to be a bit
> non-trivial). I did also spend some effort tuning the thread:{}
> queries; the others I think have not looked at as closely.
This isn't even using thread:{}, it's just making sequential queries for each
individual thread (the C version, the python version concatenates all thread IDs
into a massive "thread: or thread: or thread:..." query).
At least for the C version, the performance gap narrows the more threads there
are, which makes sense given that each new thread causes a new query in this
very unoptimized version. But altogether, retrieving threads is substantially
slower than messages.
Cheers,
Lars
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org