DescriptionSkip 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 #
Messages
Total messages: 13 (5 generated)
|