[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-06-04 Thread Andreas Cord-Landwehr
https://bugs.kde.org/show_bug.cgi?id=346644

Andreas Cord-Landwehr cordlandw...@kde.org changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|CONFIRMED   |RESOLVED

--- Comment #11 from Andreas Cord-Landwehr cordlandw...@kde.org ---
This was fixed by commit 5fdfb9dd2abc1caf6cb63a6f73800b19f5d6357a to
kiconthemes (see review link above).
Thanks and hugs to Aleix for this!

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-05-31 Thread Andreas Cord-Landwehr
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #10 from Andreas Cord-Landwehr cordlandw...@kde.org ---
Possible fix is currently discussed at reviewboard:
https://git.reviewboard.kde.org/r/123924/

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-05-14 Thread Daniel Vrátil
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #8 from Daniel Vrátil dvra...@kde.org ---
...which turns our is not the proper place to fix the bottleneck...:)

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-05-14 Thread Daniel Vrátil
https://bugs.kde.org/show_bug.cgi?id=346644

Daniel Vrátil dvra...@kde.org changed:

   What|Removed |Added

 CC||dvra...@kde.org
 Ever confirmed|0   |1
 Status|UNCONFIRMED |CONFIRMED

--- Comment #7 from Daniel Vrátil dvra...@kde.org ---
Hi, this got too unbearable for me, so I pushed a workaround to CollectionModel
in kdepimlibs.git/akonadi - basically we now cache the QIcons in the
CollectionModel. There are only few icons, so the memory footprint should be
minimal.

http://commits.kde.org/kdepimlibs/af21e9b58fbfb77fde15bc7b9e43580975e318f5

Proper fix in FrameworkIntegration plugin is the preferred way to go of course,
but still...

Anyway, this and https://git.reviewboard.kde.org/r/123791/ make KMail from
master not being sluggish anymore and I think it's comparable to 4.X again.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-05-14 Thread Daniel Vrátil
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #9 from Daniel Vrátil dvra...@redhat.com ---
Git commit d18a3173144014ec0b19ad8466684d69534351a8 by Dan Vrátil.
Committed on 14/05/2015 at 13:06.
Pushed by dvratil into branch 'master'.

Add the QIcon::fromTheme() workaround to ETM

Workaroud the very slow QIcon::fromTheme() directly in ETM, which gives us the
cache for free for both Collections and Items. The cache is really small (not
more than 10 icons) so we can afford to have it all the way down in ETM.

Also adjusted StatisticsProxyModel to call ETM::data() for DecorationRole
instead of trying to resolve the icon on its own.

M  +5-3akonadi/src/core/models/entitytreemodel.cpp
M  +15   -0akonadi/src/core/models/entitytreemodel_p.cpp
M  +6-0akonadi/src/core/models/entitytreemodel_p.h
M  +1-5akonadi/src/core/models/statisticsproxymodel.cpp

http://commits.kde.org/kdepimlibs/d18a3173144014ec0b19ad8466684d69534351a8

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-05-09 Thread Andreas Cord-Landwehr
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #6 from Andreas Cord-Landwehr cordlandw...@kde.org ---
There actually happen quite interesting things behind the scenes. Here, my
first analysis what happens (all assertions I do below are actually verified):

1) in kdepimlibs/akonadi/src/core/models/statisticsproxymodel.cpp
the model's data method returns
QIcon::fromTheme( CollectionUtils::displayIconName( collection ) )
this method is obviosly called a very big number of times

2) in qtbase/src/gui/image/qicon.cpp
the correctly cached icon from the internal cache is selected,
but then for a fallback check the following is tested:
if (qApp  icon.availableSizes().isEmpty())
return fallback;
and here the trouble starts with QIcon::availableSizes()
which triggers a call to KIconEngine::availableSizes()

3) kiconthemes/src/kiconengine.cpp
here we have a check that actually an icon exists (introduced in RR 122608,
[2]), which calls the following very costly check:

   if (mIconLoader-iconPath(mIconName, KIconLoader::Desktop,
   KIconLoader::MatchBest).isEmpty()) {
   return QListQSize();
   }

So, the question is where we should fix this.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-04-26 Thread Laurent Montel
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #3 from Laurent Montel mon...@kde.org ---
When I read qt code I see that icon is caching
QIcon QIcon::fromTheme(const QString name, const QIcon fallback)
{
QIcon icon;

if (qtIconCache()-contains(name)) {
icon = *qtIconCache()-object(name);
} else {
QPlatformTheme * const platformTheme =
QGuiApplicationPrivate::platformTheme();
QIconEngine * const engine = platformTheme ?
platformTheme-createIconEngine(name)
   : new
QIconLoaderEngine(name);
QIcon *cachedIcon  = new QIcon(engine);
icon = *cachedIcon;
qtIconCache()-insert(name, cachedIcon);
}

// Note the qapp check is to allow lazy loading of static icons
// Supporting fallbacks will not work for this case.
if (qApp  icon.availableSizes().isEmpty())
return fallback;

return icon;
}

for the moment I don't understand why it doesn't work. Perhaps
CollectionUtils::displayIconName has a problem.
I will look at.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-04-26 Thread Andreas Cord-Landwehr
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #4 from Andreas Cord-Landwehr cordlandw...@kde.org ---
Maybe this gives some more light on the issue, the paste of the first expanded
entries of perf report:
https://paste.kde.org/p6oxmvnmr

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-04-26 Thread Andreas Cord-Landwehr
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #2 from Andreas Cord-Landwehr cordlandw...@kde.org ---
Thanks, if you interested in the perf record, just ping me (though it is ~900MB
large)

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-04-26 Thread Laurent Montel
https://bugs.kde.org/show_bug.cgi?id=346644

--- Comment #5 from Laurent Montel mon...@kde.org ---
Thanks for info.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs


[kdepimlibs] [Bug 346644] KF5/KMail Performance Bottleneck in Akonadi::StatisticsProxyModel::data(...)

2015-04-25 Thread Laurent Montel
https://bugs.kde.org/show_bug.cgi?id=346644

Laurent Montel mon...@kde.org changed:

   What|Removed |Added

 CC||mon...@kde.org

--- Comment #1 from Laurent Montel mon...@kde.org ---
I will investigate it soon.

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
Kdepim-bugs mailing list
Kdepim-bugs@kde.org
https://mail.kde.org/mailman/listinfo/kdepim-bugs