]> cloud.milkyroute.net Git - dolphin.git/commit
Speedup sort
authorJaime Torres <jtamate@gmail.com>
Sat, 14 Jul 2018 17:37:09 +0000 (19:37 +0200)
committerJaime Torres <jtamate@gmail.com>
Sat, 14 Jul 2018 17:37:48 +0000 (19:37 +0200)
commit23c5fce77fd9a4a9589a6ef6f98ec6375039d958
tree0639585929650f3bd1204d001813cf54444290fb
parentec89af677894377d58c9a179d7f43fc6a8cf67f0
Speedup sort

Summary:
Uses a reference to the collator instead of copying and reinitializing it again and again. This is the reason for the speedup.

Changing the implementation from a Functor class to a Lambda removes some boilerplate code, but is not relevant for performance.

This requires a workaround for https://bugreports.qt.io/browse/QTBUG-69361
Just a single comparison to force the clean state of QCollator.

Test Plan:
Sorting in a directory with 82874 images:
[TIME] Sorting: 19883  (before)
[TIME] Sorting: 4198 (after)

kfileitemmodelbenchmark before: ..............   Passed   29.36 sec
kfileitemmodelbenchmark after:    ..............   Passed   20.39 sec

Reviewers: #dolphin, #frameworks, markg, elvisangelaccio, bruns

Reviewed By: #dolphin, markg, elvisangelaccio

Subscribers: elvisangelaccio, apol, bruns, markg, kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D13814
src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h