DescriptionFileAPI: Split recursive remove into multiple async tasks
While this change makes each recursive delete run slower, concurrent jobs can run without waiting for the entire recursive job to finish.
Recursive remove end-to-end (200 files, 120 dirs, 4-level tree, total 100MB):
Before this change: Ave: 72.94 msec, Stddev: 3.571 msec
After this change: Ave:129.54 msec, Stddev: 25.368 msec
It takes 1.76 times slower than before by average (we can probably do more optimization as this implementation doesn't care much about it), while another concurrent file task called immediately after the delete could finish in 1-5 msec (while back then it needed to wait for 70-80 msec).
BUG=146215
TEST=content_unittests:.*File.*,content_browsertests:FileSystemLayoutTests.OpRemove
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=178542
Patch Set 1 #Patch Set 2 : cros tests fix #Patch Set 3 : delegate impl cleanup #Patch Set 4 : rebased #
Total comments: 2
Patch Set 5 : rebase + addressed comment #2 #Messages
Total messages: 9 (0 generated)
|