Review Request: Implemented multithreading in KFileItemModelSortAlgorithm

Frank Reininghaus frank78ac at googlemail.com
Thu Oct 25 17:47:55 BST 2012


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/107025/#review20892
-----------------------------------------------------------


Thanks for the new patch, looks good! I've added a few comments below which will might make the code less complex.

Can you provide some benchmarks (i.e., sorting time for a fixed number of items with the current single-threaded implementation and for 2 and 4 threads)?


dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp
<http://git.reviewboard.kde.org/r/107025/#comment16466>

    I would not do any checks here - just determine numberOfThreads and call parallelSort().
    
    Right now, some parts are needlessly duplicated, like the "span < 2" check.
    
    I think that even the "span > 100" check is better moved to parallelSort() - consider the case that the sort interval is split a couple of times and gets very small - we want to fall back to sequentialSort() also in that case.



dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp
<http://git.reviewboard.kde.org/r/107025/#comment16467>

    I'd change that to
    
    if (numberOfThreads > 1 && span > 100)
    
    (or whatever threshold makes sense). You can also remove the "span < 2" check above then.



dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp
<http://git.reviewboard.kde.org/r/107025/#comment16468>

    Better only write 'else' here. numberOfThreads is guaranteed to be 1 if it's not larger than 1, so why check it? Right now, it looks at first sight like we could even return from that function without getting any sorting done at all ;-)


- Frank Reininghaus


On Oct. 25, 2012, 2:14 p.m., Emmanuel Pescosta wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/107025/
> -----------------------------------------------------------
> 
> (Updated Oct. 25, 2012, 2:14 p.m.)
> 
> 
> Review request for Dolphin and Frank Reininghaus.
> 
> 
> Description
> -------
> 
> Implemented multithreading in KFileItemModelSortAlgorithm.
> 
> If more than 100 items to sort and ideal thread count is greater than 1 -> sort them with parallelSort (2 Threads)
> 
> Use maximal 2 Threads, because more than 2 Threads are "slower" (more overhead than speed up). (I also have a patch which uses n Threads for sorting, if you want test it ;)
> 
> 
> Diffs
> -----
> 
>   dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.h 3a596df 
>   dolphin/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp e0aac13 
> 
> Diff: http://git.reviewboard.kde.org/r/107025/diff/
> 
> 
> Testing
> -------
> 
> About 2 seconds faster with sorting 500.000 files.
> About 5 seconds faster with sorting 1.000.000 files.
> 
> 
> Thanks,
> 
> Emmanuel Pescosta
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20121025/313dbc72/attachment.htm>


More information about the kfm-devel mailing list