In file copying scenarios

Feb 7, 2008 14:28 GMT  ·  By

One of the major aspects that caused Windows Vista to come under fire was performance. Despite the fact that Microsoft touted an evolution in terms of performance compared to Windows XP, Vista simply failed to deliver. And as far as Vista is concerned, user perception is virtually generalized, pointing to an inferior level of performance in contrast to what XP delivered on the same hardware infrastructure. And one scenario that contributed drastically to tilt the performance balance in XP's favor was the way Vista managed to deal with file copying. Vista RTM had serious issues when it came to providing estimates of the duration of the copying process, as well as performing the actual task at hand.

"Prior to Windows Vista, it took the straightforward approach of opening both the source and destination files in cached mode and marching sequentially through the source file reading 64KB (60KB for network copies because of an SMB1.0 protocol limit on individual read sizes) at a time and writing out the data to the destination as it went," explained Mark Russinovich, Microsoft Technical Fellow.

According to Microsoft, these problems have been taken care of with Windows Vista Service Pack 1. Russinovich informed that Vista SP1 would deliver added performance for "copying local copies on the same disk, copying files from remote non-Windows Vista systems, and copying files between SP1 systems." The issues are synonymous with the modifications that Microsoft decided to introduce in Vista RTM, in order to evolve the Windows file copy engine.

"Perhaps the biggest drawback of the algorithm, and the one that has caused many Vista users to complain, is that for copies involving a large group of files between 256KB and tens of MB in size, the perceived performance of the copy can be significantly worse than on Windows XP. (...) In Vista, Explorer also waits 12 seconds before making an estimate of the copy's duration and the estimation algorithm is sensitive to fluctuations in the copy speed, both of which exacerbate user frustration with slower copies," Russinovich added.

Obviously, the time Vista spent on average on copying files dealt a lot of frustration to users. But changes have been applied to Vista SP1 in order to deal with the copying performance. Tweaking the copy engine involved scraping the changes introduced with Vista RTM, and going back to its original form.

"During Vista SP1's development, the product team decided to revisit the copy engine to explore ways to improve both the real and perceived performance of copy operations for the cases that suffered in the new implementation. The biggest change they made was to go back to using cached file I/O again for all file copies, both local and remote," Russinovich said.