Subject: Re: [bug#33210] Cuirass: Use a SQLite in single-thread mode

From: [email-masked] (Ludovic Courtès)
Date: Tue, 06 Nov 2018 15:40:11 +0100

Hi Clément,

Clément Lassieur <[email-masked]> skribis:

> Ludovic Courtès <[email-masked]> writes:
>
>> Hello,
>>
>> Clément Lassieur <[email-masked]> skribis:
>>
>>> These patches are supposed to slightly improve Cuirass' performances,
>>> because it doesn't use the multi-threading features.
>>
>> Did you notice a measurable difference?
>
> I haven't done any measurement yet, but according to the SQLite
> documentation:
>
>     Setting -DSQLITE_THREADSAFE=0 causes all of the mutex and
>     thread-safety logic in SQLite to be omitted. This is the single
>     compile-time option that makes the most difference in optimizing the
>     performance of SQLite.
>
> So even if the optimization is small, it's the option that has the
> biggest impact on performance.
>
>> We could do it, but IMO that should be a last resort because I’d expect
>> it to be a micro-optimization.
>
> Lots of micro-optimizations lead to an overall faster application ;-).
> And this one doesn't make the code more complicated.  To me it's just a
> bonus.

I agree it doesn’t complicate the code; still, that’s a couple of
additional package variants to deal with, for hardly measurable benefits
I suspect.

I think we should focus on higher-level optimizations at this
development stage of Cuirass.  For instance I have been meaning to patch
it so that it doesn’t have to process all the build logs, since it
doesn’t do anything with those logs and processing them involves tons of
syscalls and string processing and introduces latency in fiber
scheduling.  This is a simple change that could have a more visible
impact I believe.  Hopefully I’ll get there real soon…

WDYT?

Ludo’.