D10702: Always use a job to delete files to avoid freezing process waiting on IO

Méven Car noreply at phabricator.kde.org
Sun Jun 3 09:41:16 UTC 2018


meven added a comment.


  Here is the script I have been using : https://gist.github.com/meven/f0b2a36c61240e1d6e19753afd1d3d68
  
  My benchmark logic is :
  Create a folder with x files of k sizes.
  Copy this folder.
  Delete this folder using kfmclient, measuring the elapsed time
  
  I have used 100000 files of 1 byte, 100000 of 1kb, 1000 of 3mb, 3 of 1Gb.
  
  I ran this on a 2TB hard disc drive.
  
  Here are the very limited results:
  
    In seconds
                    			avg
    before
    1b		1,586	1,738	1,684	1,66933333333333
    1k	        1,719	1,777	1,649	1,715
    3mb	        9,206	9,164	8,419	8,92966666666667
    1gb	        30,736	20,559	29,981	27,092
    
    after
    1b 		4,637	1,721	1,599	2,65233333333333
    1k	        32,186	1,726	1,685	11,8656666666667
    3mb	        2,491	7,287	7,896	5,89133333333333
    1gb	        1,464	13,344	17,271	10,693
  
  It appears my benchmark methodology is mostly of no use due to huge outliners values.
  I am using kfmclient, but more than time I would need to measure the memory overhead also of using the kioslave instead of the fast-path but this could be tricky with cross-process execution.
  
  Also I think that if my patch was to get through we nay need to treat as a signature change: the behavior of the KIO::DeleteJob would change quite a bit from being most of the time synchronous to being asynchronous.
  Some App may have built on the assumption (knowingly or not) that the function only returns after the file(s) have been removed, which would not the case after this patch.
  An opt-in boolean option could be needed to trigger the new behavior while keeping the old one for applications that have been updated/reviewed yet and perhaps mark as deprecated the old behavior.
  
  Also I would like to take the time to add some tests, although I need to learn about how to write some and a .
  
  I would much apprieciate feedback.
  As the solution is not obvious and still in debatable to me, we could set up some IRC meeting. I will be hanging on #kde-fm.

REPOSITORY
  R241 KIO

REVISION DETAIL
  https://phabricator.kde.org/D10702

To: meven, #frameworks, dfaure, ngraham, #dolphin, jtamate
Cc: kde-frameworks-devel, jtamate, markg, ngraham, #frameworks, michaelh, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180603/7d36e681/attachment.html>


More information about the Kde-frameworks-devel mailing list