My Windows Vista/7/8 Wishlist
These are some changes I’ve been trying to get made since Vista entered beta. Now 7’s beta has begun and still chances look bleak. Maybe I’ll have more luck in 8?
- Remove
TransmitFile
/TransmitPackets
limitations. Added back in Windows NT 3.51, theTransmitFile
function lets you transfer a file’s contents entirely in kernel-mode, directly out of Windows’ internal file cache. This requires significantly less resources, is much more scalable, and is simpler to code for. Later on we got the even more functionalTransmitPackets
function. So what’s the problem? Microsoft wanted to guard against people using their desktops as servers: they locked desktops down to handling two concurrent TransmitFile calls at once. With increasingly faster internet connections and P2P’s popularity still rising, this just won’t fly anymore. For what would probably take less than five minutes to change, Microsoft could make Windows seem faster for so many people. - Give me asynchronous DNS! Vista teased me with the
GetAddrInfoEx
function, which has unimplemented placeholders for async functionality. I wonder how much faster browsing the web would be if a browser submitted several DNS requests at once, instead of one at a time? Think of all those nasty Web-2.0 sites that load things from 10 different hostnames, or forum sites that let users display external images. - Implement Linux’s
TCP_CORK
. It forces TCP to send out full frames only—no partials. Think of it like Nagle without the timeout. In some situations this can result in higher throughput, so I’m all for it. - Allow me to bind sockets and files to a thread, for I/O completion ports. It could be very nice to set a preferred thread for I/O packets to arrive on, with work stealing settings. This could improve scalability by helping applications better specify their usage patterns.
- Let me boot from software RAID. I have yet to see a quasi-hardware RAID solution (you know, the ones that come with your $80 desktop motherboard) that doesn’t suck. These things do most—if not all—of the work in software drivers, and every single one I’ve seen has brought performance and stability issues along with it. Windows has it’s own built-in software RAID which should alleviate the need for all this cheap unstable crap. Unfortunately the one big gotcha of full software RAID is that you can’t boot from it. Come on guys, Linux has been letting me keep the bulk of my system in software RAID for a long time now. Time to play catch up.
Related Posts
- I/O Improvements in Windows Vista on May 30, 2009 in Coding, Microsoft, Windows Vista
- ClearType in Windows 7 on November 04, 2009 in Coding, Microsoft, Windows, Windows 7
- I/O completion ports made easy on May 14, 2009 in Coding, Microsoft, Windows
- User Mode Scheduling in Windows 7 on April 23, 2009 in Coding, Microsoft, Windows 7
- High Performance I/O on Windows on May 13, 2009 in Coding, Microsoft, Windows