[Kde-pim] Review Request 121306: Use QMutexLocker instead of manual lock/unlock calls.

Daniel Vrátil dvratil at redhat.com
Mon Dec 1 12:05:49 GMT 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121306/#review71156
-----------------------------------------------------------

Ship it!


Nice catch with the missing flag optimization, but please push it as separate commit.

- Daniel Vrátil


On Dec. 1, 2014, 12:10 p.m., Milian Wolff wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/121306/
> -----------------------------------------------------------
> 
> (Updated Dec. 1, 2014, 12:10 p.m.)
> 
> 
> Review request for Akonadi, Daniel Vrátil and Volker Krause.
> 
> 
> Repository: akonadi
> 
> 
> Description
> -------
> 
> Just a minor cleanup patch, no change of behavior.
> 
> Use an QAtomicInt instead of a plain bool for Entity::cacheEnabled.
> 
> A plain bool is not thread safe and leads to undefined behavior.
> So better be safe than sorry and use a thread safe QAtomicInt.
> 
> Optimize: Only do one hash lookup to retrieve value from cache.
> 
> Compilers do not merge the call to contains() and the successive
> value() lookup. Using iterators thus saves us one QHash lookup.
> 
> Optimize: Skip value condition on invalid flags.
> 
> HandlerHelper::itemWithFlagsCount gets called quite often apparently
> and I noticed that it was relatively slow from the Query Debugger
> in Akonadi Console. EXPLAIN'ing the query showed that it was using
> a slow-path for the WHERE FOO AND (BAR OR ASDF) condition. Here,
> ASDF was always id = -1, the id of the $IGNORED flag, which
> I apparently don't have. Getting rid of that condition simplifies
> the query to WHERE FOO AND BAR, which is apparently much better
> optimizable. Before, the query often showed a runtime of ~15ms.
> Now it is down to ~9ms.
> 
> 
> Diffs
> -----
> 
>   server/src/handlerhelper.cpp 634a26c882026bc1f1826f21f27439bfd867cebe 
>   server/src/storage/entities-source.xsl 7090c318c5bc3c071d896097e52387de6f311d03 
>   server/src/storage/entities.xsl 8b0ed030feda311df16235bf75dd30380381ed34 
> 
> Diff: https://git.reviewboard.kde.org/r/121306/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Milian Wolff
> 
>

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list