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
Review URL: https://codereview.chromium.org/1372303002
Cr-Commit-Position: refs/heads/master@{#351692}
3 files changed