diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 07:20:46 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 07:20:46 +0000 |
commit | a189fab27f8b4051774c8adf1cbf35da799f83c6 (patch) | |
tree | 1550164bc40ab1706f0e3bb1e9dac9e6db8f0b28 /webkit/fileapi/local_file_system_operation_unittest.cc | |
parent | 344c4b00122209839a4b4df4fd47b9cbcad0d04c (diff) | |
download | chromium_src-a189fab27f8b4051774c8adf1cbf35da799f83c6.zip chromium_src-a189fab27f8b4051774c8adf1cbf35da799f83c6.tar.gz chromium_src-a189fab27f8b4051774c8adf1cbf35da799f83c6.tar.bz2 |
FileAPI: 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
Review URL: https://chromiumcodereview.appspot.com/12018017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178542 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi/local_file_system_operation_unittest.cc')
-rw-r--r-- | webkit/fileapi/local_file_system_operation_unittest.cc | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/webkit/fileapi/local_file_system_operation_unittest.cc b/webkit/fileapi/local_file_system_operation_unittest.cc index 604f91d..d170b7c 100644 --- a/webkit/fileapi/local_file_system_operation_unittest.cc +++ b/webkit/fileapi/local_file_system_operation_unittest.cc @@ -1046,9 +1046,6 @@ TEST_F(LocalFileSystemOperationTest, TestRemoveSuccess) { EXPECT_EQ(base::PLATFORM_FILE_OK, status()); EXPECT_FALSE(DirectoryExists(parent_dir_path)); - // Remove is not a 'read' access. - EXPECT_EQ(0, quota_manager_proxy()->notify_storage_accessed_count()); - EXPECT_EQ(2, change_observer()->get_and_reset_remove_directory_count()); EXPECT_EQ(1, change_observer()->get_and_reset_remove_file_count()); EXPECT_TRUE(change_observer()->HasNoChange()); |