On Freitag, 26. Juni 2015 18:03:00 CEST, Frank Reininghaus wrote:
Hi,

2015-06-21 16:54 GMT+02:00 David Faure:
On Friday 19 June 2015 22:00:09 Vishesh Handa wrote:
On Sat, Jun 13, 2015 at 9:26 PM, David Faure wrote: ...

I thought about it again, and there's a much simpler solution.
We get rid of dbus notification altogether, and we simply close+reopen the
database if its mtime changed. This is how things work for shared-mime-info
(QMimeDatabase) and it's much simpler.

checking the mtime frequently can have a bad effect on the performance
though if it's done incorrectly. There is a bug report about high CPU
usage in Dolphin if "sort by type" is used:

https://bugs.kde.org/show_bug.cgi?id=346974

According to the backtrace, the process is busy inside
QMimeDataBase::mimeTypeForName(QString) doing time-related things

::shouldCheck() operates on a QDateTime object comparism, while 
currentMSecsSinceEpoch() should be sufficient (and much slimmer) and also it 
does a time based comparism in measures of *seconds* so it could likely just 
flag out the current event cycle -or even a monotic period- for expensive 
system time tests as well.

At least mimeTypeForName(QString) et al. seem totally unsuited for mass 
operations in its present state.

Cheers,
Thomas

Reply via email to