Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Issue 1372303002: Skip flushes on icon writes for 10x better jumplist perf (Closed)

Created:
5 years, 2 months ago by brucedawson
Modified:
5 years, 2 months ago
CC:
chromium-reviews, calamity, Alexei Svitkine (slow)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Skip flushes on jumplist create for 10x+ better perf Disk flushes are *extremely* expensive, and ImportantFileWriter's WriteFileAtomically function does one for each file it writes. That increases the cost (measured on my Z620 with a spinning platter boot drive) of creating a set of Windows jumplist icons from ~25 ms to ~250-400 ms. Yes, disk flushes (plus the deletes and moves, but mostly the disk flushes) make creating the jumplist icons more than ten times more expensive. That explains why JumpList::RunUpdateOnFileThread takes an average of 773 ms on customer machines. There is no clear reason why a disk flush should be necessary since database integrity does not seem to be a concern. This will resolve a long-standing customer complaint. The change to write all icons came in with CL 15080002 but the reason does not seem applicable to jumplist icons. BUG=40407 Committed: https://crrev.com/dfa983eaa8492758ccf761676820f763220f5c9a Cr-Commit-Position: refs/heads/master@{#351692}

Patch Set 1 #

Patch Set 2 : Make the change for jumplists only #

Total comments: 6

Patch Set 3 : Code review fixes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+26 lines, -6 lines) Patch
M chrome/browser/jumplist_win.cc View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M ui/gfx/icon_util.h View 1 2 3 chunks +8 lines, -2 lines 0 comments Download
M ui/gfx/icon_util.cc View 1 2 3 chunks +16 lines, -3 lines 0 comments Download

Messages

Total messages: 13 (5 generated)
brucedawson
I've been meaning to do this for a long time. I recently saw the UMA ...
5 years, 2 months ago (2015-09-29 21:28:58 UTC) #2
brucedawson
Changing reviewer because thakis@ is out, and adding asvitkine@ because he reviewed the change that ...
5 years, 2 months ago (2015-09-30 21:22:05 UTC) #4
Alexei Svitkine (slow)
LGTM % comments https://chromiumcodereview-hr.appspot.com/1372303002/diff/20001/chrome/browser/jumplist_win.cc File chrome/browser/jumplist_win.cc (right): https://chromiumcodereview-hr.appspot.com/1372303002/diff/20001/chrome/browser/jumplist_win.cc#newcode86 chrome/browser/jumplist_win.cc:86: IconUtil::NORMAL_WRITE)) Nit: {}'s https://chromiumcodereview-hr.appspot.com/1372303002/diff/20001/ui/gfx/icon_util.cc File ui/gfx/icon_util.cc ...
5 years, 2 months ago (2015-09-30 21:26:24 UTC) #6
jam
lgtm
5 years, 2 months ago (2015-09-30 21:32:07 UTC) #7
brucedawson
Now it is perfect. https://chromiumcodereview-hr.appspot.com/1372303002/diff/20001/chrome/browser/jumplist_win.cc File chrome/browser/jumplist_win.cc (right): https://chromiumcodereview-hr.appspot.com/1372303002/diff/20001/chrome/browser/jumplist_win.cc#newcode86 chrome/browser/jumplist_win.cc:86: IconUtil::NORMAL_WRITE)) On 2015/09/30 21:26:23, Alexei ...
5 years, 2 months ago (2015-09-30 22:13:59 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1372303002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1372303002/40001
5 years, 2 months ago (2015-10-01 00:22:51 UTC) #11
commit-bot: I haz the power
Committed patchset #3 (id:40001)
5 years, 2 months ago (2015-10-01 01:04:21 UTC) #12
commit-bot: I haz the power
5 years, 2 months ago (2015-10-01 01:05:23 UTC) #13
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/dfa983eaa8492758ccf761676820f763220f5c9a
Cr-Commit-Position: refs/heads/master@{#351692}

Powered by Google App Engine
This is Rietveld 408576698