Windows XP: The gold standard of Windows OSes?

When a certain product has been around for many years, at some point you will find users of the product who have not been around in the early years, and as such, aren’t familiar with the product history. Or you will have people who just forgot about that early history after a while.

How well do system requirements age?

Such seems to be the issue with Windows XP. Even today, only months before Windows 8 is to be released, many people still use XP, and complain that newer versions such as Vista and 7 are not as good as XP. They’ll claim that XP has lower system requirements than Vista/Windows 7, and that XP is faster.

But, how true are those claims? Well, let me just go by my own experience. In the early days of Windows XP (around 2002), my father bought a laptop with Windows XP Home pre-installed. It has a Celeron 1.6 GHz CPU (Northwood-based, 256k cache), 256 MB memory and a 20 GB HDD. So it is well above the minimum requirements. In fact, it is even well above the recommended requirements for Windows XP.

And initially it worked just fine with Windows XP. However, as time went on, Windows XP (and related Microsoft software, such as IE and Office, or things like Messenger and Mail), was updated, and things started to change. At some point, we decided to upgrade the memory to 512 MB, to improve performance, because the system was getting quite slow. However, XP just continued to grow and grow, and at some point even 512 MB was no longer cutting it. Aside from that, even the 20 GB disk is getting very cramped.

I recently did a complete reinstall of the system, to rule out the possibility that the system just got slow and bloated because of all sorts of junk that accumulated over the years. But no… If you just install Windows XP and bring it up to date, you need far more than just the 1.5 GB of diskpace that you originally needed. SP2 itself adds 1.8 GB to the mix, and SP3 adds another 0.9 GB. So you now need more than 4 GB just to have the OS installed. If you then install some applications, like Office and Visual Studio, the 20 GB disk is pretty much full already.

And then there are the other things that Microsoft has introduced over the years, such as the firewall and their malware scanners (first Windows Defender, now Security Essentials). The system becomes pretty much unusable when you leave those enabled. They take up far too much memory, CPU space and disk performance. The same goes for Windows Update. On that machine it takes about 30 minutes just to scan for new updates. Since the system is not used on a daily basis anymore, it wants to do that scan pretty much every time you boot it up. Which means that for the first 30 minutes or so, your system is very unresponsive (for some reason, Windows Update runs up incredible memory usage stats… over 1 GB of memory in use just to scan for updates? Not good for an OS that was originally supposed to work on systems with only 64 MB of memory). As a result, I have turned off automatic updates and real-time security features. It’s the only way to have the system remotely usable when I want to use it. I set it up for manual scans and leave it running when I’m not using it.

Yet another thing that has a significant impact on performance is the wireless network. Back when the laptop was new, wireless networks were not common yet. It only has a built-in 100 mbit ethernet adapter. But over the years, having wireless connectivity became more important, so we installed a PCMCIA 802.11g (54 mbit) adapter. However, these networks are usually encrypted, and this encryption is done on the CPU. So this adds yet more overhead that wasn’t around with the original release of Windows XP.

All in all, despite the system being far better than Windows XP’s original “recommended system requirements”, the system is barely usable with a fully updated Windows XP SP3 in 2012. 512 MB really is not enough, I would recommend 1 GB as a minimum for Windows XP (it’s just not possible to use more memory in this particular laptop. The chipset cannot address more than 512 MB). And lo and behold, that is also the minimum requirement for Windows 7!

Likewise, Windows 7 recommends a 1 GHz CPU as minimum. Well, even for Windows XP that is no luxury, since the 1.6 GHz Celeron is certainly not very fast, especially not when also using the wireless network, enabling the firewall, enabling Windows Update and real-time protection from Security Essentials. Besides, modern applications and websites also generally demand fast CPUs. I wouldn’t want to browse heavy Flash or JavaScript websites with the 233 MHz CPU that was originally the minimum requirement for XP. Likewise, Visual Studio 6, which was originally on the laptop, was extremely fast and responsive… the first Visual Studio.NET was already rather sluggish. But Visual Studio 2010 is just a pain to use on the system.

The issue here is simply that Windows XP’s system requirements are outdated. They come from a different era, and no longer apply today. Vista and Windows 7 have system requirement that are simply more realistic in today’s world. A system with 1 GB running Windows 7 is far more usable than a system with 128 MB running XP.

So for practical intents and purposes, I think the main difference between Windows XP and Windows Vista/7 requirements is related to disk space. Yes, although XP has more or less tripled in size over the years, it still has a modest footprint. Then again, in an era where you buy harddisks by the terabyte, I don’t think a few more GB for the OS are really going to matter.

In many other ways, history has repeated itself… Windows XP was preceded by Windows 2000. However, most people will not have used Windows 2000. Firstly because Windows 2000 was aimed purely at the professional market (Windows 98 and ME were aimed at the home users), and secondly, because there was not that much time between the release of 2000 and XP. Home users would upgrade from Windows 98 or ME to XP, and many professional users went from NT4 to XP. So a lot of people just skipped Windows 2000 altogether.

Likewise, Windows 7 followed reasonably quickly after Windows Vista. And Vista is an OS that most people have not used. This skews the perspective a bit, obviously.

When Windows 2000 came out in late 1999, you had to have a reasonably high-end machine. Its recommended system requirements are pretty much the same as Windows XP’s (just like is the case with Vista and Windows 7). And its minimum system requirements were possibly the most unrealistic ever. When Windows 2000 came out, I still used my trust Pentium 150 with 64 MB, running Windows NT 4.0. This OS ran like an absolute dream on that machine. But Windows 2000 was just a total disaster. It would take ages to boot, and once it was all booted up, it already used all your 64 MB of memory, so anything you wanted to do would cause excessive swapping, and wasn’t really usable. However, since DirectX was no longer updated for NT4, I had to use Windows 2000 if I wanted to develop for DirectX 5.0 or newer.

So I upgraded to a PII-400 with 256 MB. Windows 2000 worked better, but booting still took ages, and it wasn’t quite the smooth and snappy feeling I was used to from NT 4.0 on my P150. Sometime later, I used Windows 2000 on a 1 GHz system, and even that wasn’t all that fast with booting Windows 2000. Windows 2000 just was a pig.

Was Windows XP all that much better? Well, not really. Microsoft improved the booting speed with XP, that much is true. But other than that, it was still about as heavy as Windows 2000 was. The difference was mainly that it was some 2 years later, and most people had already upgraded to a system with enough CPU power and memory to run Windows XP properly (at least, at that point in time… see above). Aside from that, for a lot of people, it was the first time that they were using an NT-based Windows, instead of the earlier DOS-based Win9x versions of Windows.

Windows NT for the mainstream

NT had its pros and cons. Its DOS box was no longer a true DOS, but rather a virtual machine. By default it would not actually run DOS (as in command.com), but rather the NT Command Prompt (cmd.exe). There is a big difference: The NT prompt is a proper 32-bit Windows application. Its operation is similar to DOS, but not equal. Not all commands are the same, and it does not provide full DOS compatibility. The 16-bit NT DOS VM will not be started until you start an actual 16-bit DOS program (which could also be command.com by the way). Since these DOS processes run in a VM, they are sandboxed, so that they cannot take over the entire system anymore, like they could with DOS and Win9x. As a result, some parts of the hardware are emulated, and performance is worse than under native DOS/Win9x. Some parts are also not entirely compatible.

Likewise, Win9x was not truly the Win32 system that was introduced with Windows NT. Win9x implemented a subset, which would allow most simple programs to work, but it did not implement things like multiuser and security-features. The implementation was also not all that robust, and did not perform as much sanity checking as the full Win32 implementation did in NT.

The problem here is that a lot of developers developed on Win9x exclusively, and never bothered to check their code on an actual NT system (or in some cases they just never bothered to read the documentation properly, and pass the right values to a function). The old mantra of “Working code is not bugfree code” showed up again: software that worked fine on Win9x could be completely broken on NT. Most of the time that was not even NT’s fault. It just ‘happened to work’ on Win9x because it happened to ignore certain values and things. Some people have all the luck…

So when people moved from Win9x to the NT-based XP, they found that a lot of older DOS/Windows software no longer worked. There was also the problem that Windows XP required different drivers than Win9x, and these were not developed for older hardware. In general you could use Windows 2000 drivers in XP though, so hardware that already had updated drivers for Windows 2000 could generally be used as-is in XP. In that sense, Windows 2000 laid the groundwork for XP.

Does that sound familiar? It should, because pretty much the same thing happened again when people moved from XP to Vista. Although Windows NT had been designed as a multi-user system from the start, where you would have various levels of user rights (administrators, power users, regular users, guests etc), these features were not in widespread use outside professional environments. Since Win9x had no concept of users and rights management (it comes from the world of personal computers and MS-DOS, where generally there was one user per computer and no networking, so the user was also the owner/administrator of that computer by default), software that was aimed mostly at the home/Win9x market just ignored such things altogether, including the design guidelines for Win32 applications. As a result, such software could generally only run under administrator rights, and so even though it was possible to create users with limited rights in Windows XP, most people just ran as administrator (either because they didn’t know any better, or because it was too inconvenient with so much software not working properly).

With Windows Vista, Microsoft tried to tackle this problem by introducing User Account Control, a technology that made it easier to run with a limited user account. However, a lot of those poorly written Win9x/XP applications still required special rights, so people saw quite a few UAC-popups, which they considered annoying. They blamed this on Windows Vista, although it really was not Vista’s fault at all. You could still run as administrator all the time, just like in XP, and not see any UAC popups. However, this would obviously be less secure. Besides, if programs are written properly, you should rarely see a UAC-popup in daily use. In most cases, software will only require it during installation. But a lot of software would e.g. store data in the Program Files folder, or in parts of the registry that were meant for system data, not user data. This was against Microsoft guidelines. Prior to Vista, this would generally work okay silently, because the user was administrator, and had the rights anyway. But with Vista, you would get a UAC-popup that requested these rights.

Likewise, Vista introduced a new driver model again, so like with XP earlier, a lot of hardware was not supported initially. So in terms of user-experience, Windows XP was nicer to use. It did not have annoying popups, and it supported all your hardware. It didn’t really help that the initial release of Vista was a tad buggy as well, especially with some file operations being very sluggish.

So, in short, Windows XP did not quite start out the way people see it today. People tend to see it as a fast and lightweight OS that is very robust. Initially it was none of those things, really. But XP changed a lot over time, and mostly for the better. Ever faster hardware did the rest. Mostly the same can be said for Vista. It didn’t have a very strong start, but software and driver updates and faster hardware improved Vista over time. Unlike XP however, not that many people used Vista, so they never noticed.

So is Windows 7 that much better?

I already made a post about this when Windows 7 was released, but I’ll reiterate the points shortly. Windows 7 uses the same new driver model that Vista uses, so it is plagued by the same problems of legacy hardware not being supported anymore. Windows 7 also still has the same UAC-based security system (although it has improved slightly, so you get less prompts, but mostly when using Control Panel or Explorer). Windows 7 also still has the same system requirements as Windows Vista.

So like with Windows 2000 vs XP, it is not so much that Windows 7 is a better OS, it is more that Vista did the groundwork for driver and application development. By the time Windows 7 came out, a lot of devices were already supported in Vista, and could be used as-is in Windows 7. Many applications also had been updated to avoid issues with UAC and such, so they were not as annoying to use anymore. And, since a few years have passed, people generally had faster PCs by now, so both Vista and Windows 7 would run smoother anyway.

I personally moved to Windows Vista at an early stage, because I wanted to develop for DirectX 10 (again, sounds familiar, doesn’t it? People made a big deal out of this, but I never heard anyone complain back when DirectX development for NT4 stopped). And initially, yes, Vista definitely was a bit troublesome. I had to upgrade some of my hardware, because it was no longer supported, and some drivers were rather buggy (such as the nVidia drivers for my GeForce 8800GTS), or just nowhere near as optimized as their XP counterparts. But I had to stick with Vista anyway, because of DirectX 10. And Vista certainly improved over time. After SP1 was released, the performance and compatibility issues were pretty much solved.

I started running Windows 7 alongside Vista in the beta stages. And the difference really was not that large. Even today I still have my Windows Vista installation alongside Windows 7, fully up-to-date. And although Windows 7 is slightly faster, more efficient, and has some nicer UI features, the differences are marginal at best, and I could personally live with Windows Vista just fine.

How good is Windows XP in 2012?

I also still have my installations of XP and XP x64 running on my system, fully up-to-date (as a developer it’s always a good idea to test your code on different OSes and different hardware from time to time). XP is still a good OS in its own right… Most software still runs fine on it, and it is very robust and reliable (and that certainly was not the case for MS-DOS/Win9x. NT/2k were robust, but probably not very wellknown outside professional environments). But I don’t get why some people still see Windows XP as the ‘gold standard’. XP is really starting to show its age. Because it lacks UAC and various other newer security features (eg IE running in protected mode,  ASLR), it is nowhere near as secure as Vista and Windows 7.

Performance-wise, XP is also not that good anymore. Windows Vista and especially 7 make much better use of multicore CPUs, and large amounts of memory. XP was designed in a time when conserving memory was still a priority. Vista/7 instead use the extra memory to pre-cache various data, making the system a lot more responsive. XP still rattles the HDD a lot, and causes a lot of waiting in places where Vista/7 just blast through right away. Aero also gives a much nicer and smoother experience. When you drag windows around in XP, you see a lot of tearing, and you see all sorts of rubbish on the screen before it is redrawn (invalidated rectangles waiting to be updated).

What is the real evolution in OSes?

My view is that up to, and including, Windows XP, the hardware of home/personal computers was trying to catch up with the OS technology. OSes had to work within the limits of this hardware, so even though more advanced OS technology was available in mainframe and supercomputer systems, this could not yet be applied to regular PCs.

For example, early PCs had very poor graphics capabilities, so it took a while until an OS could implement a GUI. Other systems had successful GUIs before the IBM PC did, partly on the strength of their hardware being better suited to the task (eg the Apple Lisa and Macintosh, the Commodore Amiga, Atari ST, and even the C64 with GEOS). Likewise, protected mode and multitasking were not really possible on early PC’s. It wasn’t until the 80386 CPU that the hardware had powerful enough features, on which the OS could build memory protection and virtual address spaces. And even then the CPUs were still too slow. Proper 32-bit protected mode software did not become popular until around 1992-1993, when 80486 CPUs were commonplace and the first Pentiums started to arrive.

And then people started to use the internet, which required a lot of extra development in terms of security features, requiring ever more powerful machines (which as I described above, seems to be why Windows XP requires a much more powerful machine than its original requirements indicated). It seems that a few years ago, this ‘arms race’ has finally calmed down, and OSes no longer go up in system requirements much, if at all. Instead, hardware is now ahead of the OSes, and OS development is now concentrating on making more efficient use of all the memory, the multicore CPUs, video acceleration, and let’s not forget the upcoming GPGPU technology either.

Which is why Windows 7 actually runs slightly nicer than Vista on a modern system, and considerably nicer than XP. And Windows 8 seems to continue the trend, with an even better scheduler, and more efficient resource use overall.

This entry was posted in Direct3D, Software development, Software news and tagged , , , , , , , , , . Bookmark the permalink.

58 Responses to Windows XP: The gold standard of Windows OSes?

  1. Klimax says:

    There was a big change in W7 regarding graphics: http://blogs.msdn.com/b/e7/archive/2009/04/25/engineering-windows-7-for-graphics-performance.aspx
    And another for many cores: http://channel9.msdn.com/shows/Going+Deep/Arun-Kishan-Farewell-to-the-Windows-Kernel-Dispatcher-Lock/

    So there were some big changes, but often invisible and not really seen until on server with 16 cores…
    (BTW: Windows Internals 6th edition part 1 is out)

    • Scali says:

      Yes, Windows 7 also has better HT-aware scheduling.
      But, indeed none of it really matters much in everyday use for most people.
      GDI is once again hardware-accelerated (it used to be, up to and including XP, but with Vista’s new WDDM 1.0 driver model the hardware acceleration was not done in time for release, so they bumped it into WDDM 1.1, for Windows 7), and GDI calls can now be handled concurrently… but if you didn’t benchmark it, you’d probably never notice.

      I think Windows 8 will be a similar experience: a faster OS if you benchmark it, but not something you’d actually notice in everyday use.
      For Windows 8, the most obvious changes will be in the UI.

      • Klimax says:

        Well, there was difference, but only in programs which read back content of window. (Vista – memcpy; 7 – copy over bus)

        As for W8, there is noticable difference, but it requires user to be quite heavier. (larger number of apps/programs + number of tabs in IE,.. mainly memory related things)
        My favourite combo when working is 15 tabs in IE + VS + Enterprise Architect + two or three PDFs + RDP + 2 UVNCs + gretl + VLC + Word/Excel…

      • Scali says:

        Sounds like you are basing that on what you read, not on actual experience.
        GDI does not allow you to actually access the physical window content. If you want to read back contents, you’d have to do it via a DIB or something, which is in system memory even in Windows 7.
        I have written code that copies window contents to a texture using BltBlt()/PrintWindow(), but even there I didn’t notice any performance difference.

        Only DirectX allows you to physically read back the display, but that has always gone directly via video memory.

      • Klimax says:

        Looks like memory got faulty… (Scanned Virtualdub blog,nothing and apparently I misremembered part of E7 blogpost)

        Theoretically it could affect UVNC.

      • Scali says:

        Yea, that’s my point… *Theoretically* Windows 7 is faster (and Windows 8 will be faster still). But in daily use, you would rarely notice.

      • Klimax says:

        What is daily use… In my case it’s Core i7-3930k ; 16GB and running either x264 (insane profile doing ~2FPS) or running often many things at once like four Virtualdub+Avisynth jobs. Or BOINC…

        So dispatcher lock and HT-awareness might make difference, but I upgraded from XP right to 7, so I have no numbers as it was even with replacement of HW. (One day I might revisit that)

      • Scali says:

        Well, my point is something like this:
        Windows 7 may give you say 2.05 fps, where XP gives you 1.95 fps.
        Something like that.
        Which is a real performance difference that you can measure.
        But at the end of the day it just means that Windows 7 does the job about 5% faster.
        Something that isn’t really significant, and you wouldn’t notice if you benchmarked specifically… Say you had an encoding time of 4 hours. Well, whoop-tee-doo, in Windows 7 it would be 12 minutes faster. Yea, it’s faster, but at the end of the day it’s just marginal. It doesn’t change your experience. It still feels like 4 hours of work.
        Especially since you generally don’t know the exact times beforehand (they are different for each movie, depending on length, type of content etc), you’d never even notice that those small differences are there. It’s all within the margin of error.

      • Klimax says:

        12 minutes? Heh.
        Such scale of change in my case can mean hours of difference… (Generally archival encoding can take between 12-24 hours per full pass for one hour video)
        Or at minimum how many videos at once and how fast can be processed before x264 encoding.

      • Scali says:

        Well, 1 hour difference on 24 hours is still just as insignificant.

      • Klimax says:

        Multiply that hour by 24 and you get whole day. And that’s my situation… (A con or two and you have that much.) And it’s not like I don’t have any other use for maIn PC, into which I invested couple thousand dollars. (resp equivalent in my local curreny)

        I’m sorry, but that hour is worth quite some money. If that means getting new version of Windows, so be it. Even if that would mean Server edition. (There si so far no threat as I am covered by MSDNAA 😉 )

      • Scali says:

        Well, aside from the fact that this scenario is not representative for the average user, there are better/cheaper ways to improve performance. Such as buying a faster CPU, using GPU acceleration, or just overclocking.

      • Klimax says:

        Well, I didn’t say general user gets there… Just noted my case.
        (Incidentally, I took my 3930k to 4,4,GHz – “mild” stable overclock on air; nice boost)

      • Scali says:

        Well, I never said there aren’t any exceptions to the rule.

      • Klimax says:

        How many replies it took us to get back on same page? 😀
        (How many exceptions for them to be still exceptions? Anyway, I think we can close this cycle…)

      • wfw311 says:

        AFAIK when you install WDDM 1.1 drivers on Windows Vista which you probably did (might need the platform update and the service packs too) the difference between Windows Vista and Windows 7 becomes much smaller. With WDDM 1.0 drivers the memory usage of the DWM process is much higher, and total memory usage was one of the major complaints about Windows Vista.

        Since I can’t seem to reply to some of your comments below:
        – A VLB video card with no acceleration? That’s hard to believe. GUI acceleration started with ISA cards, AFAIR it was already standard when VLB took off. (GUI acceleration was definitely noticable in Windows 3 on slower CPUs, and it was also noticable on Pentium class computers with PCI cards. Just try the standard VGA driver…)
        – Regarding disk space: Of course the added features of XP Service Packs will use more disk space. But don’t forget that by default a backup folder is created for every single update. If you are certain you won’t roll back the updates you can remove those directories (hidden folders $NtUninstall*$ in C:\Windows). Best use a tool for this to also remove the corresponding registry entries. (For example “Windows XP Update Remover”.)

        Great Blog btw.

      • Scali says:

        I know there have been various patches that reduce the memory footprint on Vista, but I have not heard of Vista being updated to support WDDM 1.1 driver features and use its acceleration features. Do you have a source for that? Wikipedia claims the contrary and links to here: http://blogs.technet.com/b/thomasolsen/archive/2008/10/29/introducing-the-microsoft-direct2d-api.aspx

        Also, I think you recall wrongly. There were *some* ISA-cards with Windows acceleration features (such as the ET4000/W32 edition), and slightly more VLB cards with Windows acceleration. However, with the more mainstream/budget cards, Windows acceleration was still uncommon (and also had little value, since games used DOS and relied only on software rendering, so for the average user a W32 version of an ET4000 offered nothing over the vanilla ET4000).
        If you must know, the card in my 486 is a Diamond SpeedStar PRO VLB, using a Cirrus Logic CL5426. As far as I know, the only acceleration feature it has is hardware bitblt. So rendering of GDI components with lines, rectangles and all that, is still done entirely by the CPU.

      • Scali says:

        To add to that, remember that VGA uses a planar memory configuration, which has considerably higher overhead for addressing individual pixels and such. SVGA cards offering linear framebuffers in 8, 15, 16 or 24 bit would make the work of the CPU lighter in many rendering operations.

      • wfw311 says:

        I can’t seem to reply to your answers to this has to go here.
        You are right about Vista and WDDM 1.1. I seem to have confused a few things.
        It is possible to install WDDM 1.1 drivers on Vista, and you get some of the advantages, but not all of them, especially not the memory savings. OTOH if you install WDDM 1.0 drivers on Windows 7 you get the same big memory footprint like with Vista.
        I think this can make a big difference in performance between Vista and 7 which will be noticeable when you don’t have a large amount of RAM (which you probably have). I suppose with 1-2 GB of RAM this will make a big difference.

        Regarding GUI acceleration on ISA/VLB cards: I’m not sure but maybe bitblt is the most important feature for general GUI stuff? It can be used for opaque window moving, and with an off-screen font cache it can be used for font rendering. GUI’s probably only need to draw horizontal and vertical lines which is rather easy compared to diagonal lines. Also while writing to a VLB card is quite fast reading from video memory is probably still slow which would have a high impact on bitblit’s.
        You are right of course regarding video modes, one would have to compare an accelerated video driver to a generic SVGA/VESA driver.

      • Scali says:

        Well, we can argue about what the card does and doesn’t support and what may or may not help in Windows acceleration… But the bottom line is that my card wasn’t exactly a front-runner in the Windows department. S3 cards would completely school it in Windows. But it held its own in DOS VGA/SVGA games, demos etc.
        Besides, getting back to the context in which I made that statement: the point is that GDI rendering speed is not that big of an issue.
        Modern PCI-e cards and onboard video chips no longer have the problem with reading from video memory anymore either. And even though my CL5426 may have had a rudimentary bitblt (as an Amigan I have trouble seeing SVGA cards with blitters as ‘accelerators’ anyway… especially since those early ones generally couldn’t even do half the things that a stock Amiga from 1985 could do… even though the SVGA card was about as expensive as an entire Amiga machine), a modern CPU can probably move data around much much faster than this early 90s technology.

  2. nickysn says:

    Yes, it’s absolutely true that XP with the latest updates and latest versions of software has become just as slow as Windows 7. In my experience, XP takes even more time to boot than 7. IOW, it seems to boot fast, but when you log in, it takes a lot of time until the system becomes responsive and usable. This is not due to a lack of RAM (i have 4GB) and most likely due to all the crap that install itself to load on startup.

    Overall, this reminds me very much of a post on Agner Fog’s blog, called “Why is my computer so slow?”

    http://www.agner.org/optimize/blog/read.php?i=9

    IMHO, most of the culprits he identified apply equally to both XP and 7 and many of them are related to the applications that we use and not the OS itself.

    • Scali says:

      I think it depends on what you define as ‘speed’, in terms of an OS. I generally don’t include boot times, but just application performance (you normally boot your system once a day at most, so boot times are generally irrelevant to the overall experience).

      And in terms of application performance, XP was never as fast as Windows 7 in most cases. The one exception I could name is the graphics subsystem. XP has an extremely simple GUI, giving technologies such as DirectX and OpenGL almost total control in windowed mode. This means you get very low overhead, resulting in extremely high framerates for simple scenes (in excess of 10000 fps is easily possible on a fast system).

      Vista and Windows 7 (when using Aero) use DirectX (or actually DXGI) themselves, for the GUI, and as such, any DX or OGL application has to fit within this system, causing some more overhead (although you can still get 8000+ fps on a fast system).

      But again, this is irrelevant at the end of the day. Actual applications will rarely run at such high speeds, and the difference in overhead is in the range of microseconds. So at realistic framerates at 100 fps or lower, the difference is within the margin of error, and the end-user wouldn’t notice.

      And in Aero’s defense… with the redesigned GDI implementation in Windows 7 (concurrency and hardware acceleration), Win7 can actually render most GDI-tasks as about as fast or faster than XP.
      Tomshardware did a test on 2D performance in Windows 7 recently:
      http://www.tomshardware.com/reviews/2d-windows-gdi,2539.html
      http://www.tomshardware.com/reviews/2d-windows-gdi,2547.html

      They also ran into various issues that turned out to be driver bottlenecks. Which again proves the point: You don’t notice these things until you benchmark. It’s not an issue in daily use. Nobody ever complained about these performance bottlenecks because nobody ever noticed them. Which is probably why the driver developers never bothered to put any time into optimizing them.
      However, after Tomshardware did this article, the drivers were fixed, and performance went up.

      • Klimax says:

        Well, a person did a ranting Youtube video… (nVidia’s beta/Vista driver on beta of Windows 7 using highly *unrealistic* actions; to this date some use it as proof 7 is slower and worse then XP)

        In case of interest I can dig up link.

      • Scali says:

        Let me guess… Xpclient uses this video as ‘proof’? 🙂

      • Klimax says:

        I didn’t see him… yet.

  3. xpclient says:

    So who told you to install SP2 or SP3 on top of XP. You can slipstream SP3 directly into XP Setup, you can also slipstream all the post-SP3 updates ONCE using a simple command line switch and forget about installing them again. Windows 7/Vista is a major downgrade to *usability*. It has a half-baked broken version of Windows Explorer and if you are working with files a lot, XP is the best. You lose a lot of other features too like GDI acceleration (no GDI is only partially accelerated in Windows 7, 6 functions out of 100s of GDI functions according to http://www.passmark.com/support/performancetest/2d_windows7_performance.htm), audio acceleration, decent search, extremely fast servicing, awesome compatibility and most importantly a productive user interface which XP had. Windows 7 is decent for average users, it doesn’t have the quality of XP because it goes backwards in many areas. See http://en.wikipedia.org/wiki/List_of_features_removed_in_Windows_Vista and http://en.wikipedia.org/wiki/List_of_features_removed_in_Windows_7 . A friend of mine with me as UX consultant developed the free and open source Classic Shell to fix the hundreds of usability issues in Vista/7 and it’s getting only positive reviews (shameless link to my blog: http://xpwasmyidea.blogspot.com/2011/12/complete-list-of-classic-shells-reviews.html) because in the end, getting work done fast and in the most productive way matters the most. You may disagree that Windows 7 is better, I tried my best to migrate to it too, that is why we developed Classic Shell but it isn’t good enough for me personally to migrate to Windows 7.

    • Scali says:

      Slipstreaming servicepacks has no effect on the performance once everything is installed, so it is completely beside the point (besides, I never said how I installed things, so you don’t even know if I slipstreamed or not on the reinstall (obviously I couldn’t slipstream the first install because the SPs didn’t exist yet)).
      Go ahead, continue to use XP, if it makes you happy. As I say, it doesn’t get enough performance from my hardware anymore, so the user experience is very poor.

      Also you DO understand the massive difference between Aero’s use of GDI and XP’s, right? XP gets massive amounts of GDI invalidations with overlapping windows, Aero gets none. Makes it a whole lot faster.

      • xpclient says:

        Windows XP, especially the x64 edition is super fast, gets everything done faster than Windows 7 x64. Aero/DWM is only used for drawing the chrome of the windows, everything inside the window, the client areas, are still rendered using GDI (only not if it uses Direct2D like for apps like IE9). But 90%+ of apps use GDI. Because of the perceived smoothness of Aero, it may appear to be faster at drawing.

      • Scali says:

        Nope, XP x64 certainly is NOT faster than Windows 7 at everything (I’ve not even mentioned things like I/O prioritizing yet…).
        And I’ll take the rest of your post as a ‘no’. Clearly you do NOT understand the massive difference between Aero and classic/XP rendering.
        Also, I have actually benchmarked Aero vs XP/Classic mode (when I was working around the bugs with microsleep). Things like updating a window title are oodles faster with Aero than XP/Classic rendering.

    • Klimax says:

      Ah, familiar commenter. You are still at it? Look. Learn differencies and improvements (books like Windows Internals) and stop inventing nonexisting advantages of XP including performance. (And that you are unable is in no way indicative for and of others…)

      Anyway, good luck in two years.

      • Scali says:

        Also, the Wiki pages he lists have an awful lot of edits by user ‘Xpclient’ or anonymous edits from his IP block… Someone is pushing an agenda here 😛

      • xpclient says:

        Why do you look conveniently at only the Wiki pages I mention and abuse me of agenda and what not? If you see my Wiki history, you will realize most Wikipedia articles on Microsoft and Windows technologies including ones on new Vista/7 technologies have significant contributions from me. @Klimax, you also need Windows Internals 5th edition (besides the newest edition) to understand how Windows 2000/XP work instead of blindly believing newer must be better in all aspects. I have no agenda, but someone here has no or poor understanding of Windows. Or probably I can accuse you of having the hidden agenda of promoting Windows.

      • Scali says:

        The fact that you edited/biased many other Wiki items as well doesn’t make the ones you mention any less biased 🙂
        And, I don’t think you’re in any position to accuse others of having a poor understanding of Windows, given the GDI/Aero thing above.

      • xpclient says:

        @Scali, what GDI/Aero thing above? I simply stopped arguing because there’s no point if you WANT to believe otherwise. If you want to ignore the facts. Look at any 2D GDI benchmarks on the web, read Greg Schechter’s blog from start to finish, read Tom’s hardware articles mentioned above by Klimax, run the Tom2D benchmark yourself. There are a dozen companies in 2D space whose products slowed down on Vista/7. But you will ignore all their benchmarks as well probably and tell me your own benchmarks are correct. How can GDI be faster if only a subset of functions in accelerated? The underlying content doesn’t have to be re-rendered when DWM=on giving the feel that Aero is faster. Yes DWM has far better hardware prioritizing, no one’s denying that. And for 3D performance or even any 2D API that uses DirectX like Direct2D, it is faster. But GDI and hence most GDI-using apps are slower in Vista/7. If your GDI app uses double buffering or only some of the accelerated functions, it won’t be so slow.

      • Scali says:

        Uhhh, *I* was the one who brought up the Tom2D stuff, not Klimax.
        What you don’t seem to understand is that GDI works differently in Aero.
        Firstly, it supports concurrent drawing. But this only works when you have multiple threads/processes drawing GDI, as obviously a single thread needs to retain correct order of GDI operations for compatibility. Since most benchmarks are single-threaded/single-process, they don’t measure the improvements that Windows 7 offers on multi-core systems.
        Secondly, Aero uses textures in videomemory as backbuffers. As a result, there are no invalidated rectangles anymore when windows are overlapping. This results in a massively reduced number of window redraws. As Jim Blinn already said: The fastest way to draw something is not to draw it. It doesn’t matter how fast XP’s GDI acceleration is, when XP has to redraw things while Windows 7 doesn’t. You can never get it that fast.
        Thirdly, hardware acceleration is no guarantee for faster performance. There are plenty of cases where CPUs have become so fast that they are faster at just performing the entire operation in software than the overhead required to set up hardware for a specific task (Which also explains why sound acceleration has disappeared. There is no longer any point).
        Fourthly, as Tomshardware has demonstrated, the state of driver quality and power management are a far larger factor in performance than the actual OS design or hardware performance. So what are benchmarks measuring exactly anyway? (Eg, my videocard clocks down to 50 MHz(!) in desktop mode anyway. It isn’t even TRYING to be fast, there is no point anyway. I could use a custom app to force it into 3D mode and get much better results when running 2D benchmarks, but how should it be benchmarked?).
        Lastly, no, GDI apps aren’t actually slower in Vista/7. GDI is never the bottleneck. Even if some individual GDI operations may be faster when benchmarked on XP in isolation, the overall OS design and implementation will make 7 faster anyway, in practice (it can update multiple windows/controls concurrently, etc).

      • Klimax says:

        @xpclient. I know. I read them. I am pretty sure I have much better understanding of Windows internals then you do. Heh, blindly believning, agenda… It’s clear who has an agenda and it’s not me…
        Hints: What is the biggest difference regarding kernel locks protecting kernel data structures betweeen XP, Vista and 7 and how are managed threads waiting on objects? How scalable is kernel scheduling on multiprocessor/SMT systems and how was it solved in 7/2008 R2? How does sheduling differ between XP 7? What is ALPC and what are differencies to original IPC? Is there difference in robustness against bugs in drivers of graphics cards between XP,Visat and 7?

        Looking forward to replies…

  4. xpclient says:

    @Klimax, did I say kernel improvements in NT6 are for the worse? You just assumed that by yourself. Kernel better doesn’t make the whole OS better. There’s the shell (Explorer, Taskbar, Start Menu) which has gotten worse, there’s search which is now useless for files, there’s many other components like servicing which has gotten worse, so bad that it significantly increases your disk footprint. The package as a whole is a step back is what my claim is. I never said Windows 7 is worse at everything than XP. It’s the inferior usability of W7 that makes me stay on XP.

    @Scali, nice argument. But this requires apps to be multithreaded. Where are the multithreaded apps? Just like the benchmarks, most GDI apps are also single-threaded. The interface as a whole feels responsive in real world usage due to fine-grained locks, although individual apps draw slower. e.g. PowerPoint when presenting slides shows significant drawing slowness for me on W7.

    • Scali says:

      Incorrect. Firstly, the apps don’t have to be multithreaded. As long as you are using different DCs (eg drawing to different, non-overlapping controls), the draw calls can be run concurrently… On Win7, the draw calls are buffered and processed in the background as you should know (so, GDI itself is multithreaded, the application doesn’t have to be).
      Secondly, you should look beyond a single application. This also goes for multiple applications running simultaneously.

      The problem is that most benchmarks are designed as a single thread drawing directly onto the client area of a window. Not a very realistic scenario in real-world applications.

      • xpclient says:

        Fair enough. So I see, in real-world usage, GDI/2D performance is not an issue in Windows 7 due to the improvements they made for concurrency and low DWM memory consumption. I have removed the point comparing graphics. Windows 7 is hands down better in the graphics department.

      • Scali says:

        That’s not quite how I would put it.
        I wouldn’t say Windows 7 is better hands down, there are still cases where XP will be faster (some of which I mentioned myself).
        However, as I tried to say from the start: it’s just a theoretical difference. You can benchmark the differences, but in general, you won’t notice.
        What are we talking about here anyway? Not sure if you read any of my other blogs, but if you did, you’d know that I also like to toy around with ‘vintage’ computers. One of them is a 486DX2-80, which runs Windows 95. And it has an old VLB videocard which has no acceleration whatsoever. So we have an ancient single-core CPU which has to do all the GDI rendering. And even THAT computer handles it quite well. There isn’t a lot of ‘GUI lag’, so to say. So why would you worry about software rendering on today’s computers which are perhaps 1000 times as fast as that one?

        I have a Core2 Duo 1.5 GHz laptop with Intel IGP, and both Vista and 7 installed on it. In theory, Windows 7 should render faster and more efficiently, but in practice I don’t notice the difference. And my main desktop is a far more powerful machine than that, but again I don’t notice the difference in the GUI performance compared to the laptop.

        I don’t think the speed of GDI itself was the reason why Microsoft redesigned the GDI system. I think the reasons lie elsewhere. Perhaps they can reduce power consumption this way. Or the fact that GDI is more efficient means that there’s more CPU/GPU-power available to the applications. Because the performance of the UI itself… I can’t tell the difference without benchmarking, between systems that are very different in terms of performance. Even a relatively low-spec machine like my C2D laptop is snappy and smooth, so what’s the point?
        What I DO notice is that CPU/GPU-intensive tasks generally perform slightly better on Windows 7 than on Vista.

    • Klimax says:

      Still using your own perception and inability as absolute? As I said, you are arguing your own perception, stuckness and ignorance. Good thing MS doesn’t listen to those few like you…
      That you are still stuck in the past is in no way problem of world. Good luck in two years. Just make sure your PC won’t be part of botnet.

      • xpclient says:

        This comment confirms that you are either a shill or a troll. Enjoy paying MS again for reduced productivity. Ignorance is bliss in your case, you are happy for being sold a product that cheats you and tells others to “upgrade” to it.

      • Klimax says:

        Your inability to properly argue technical points while abusing perception doesn’t make me shill.
        So soon giving up. Pity. You could have made better attempt, but apparently your ammunittion is very weak…

        “Ignorance…cheats…reduced productivity…” Thanks for laugh and you cost me best irony meter I had. You,sir do not know anything, just what you used for all those years. Thanks for ad hominem and no facts. Also projection is not nice thing, you know. (BTW: In real world, adaptability is quite good thing to have.)

        So, see you in two years.

  5. XP says:

    You’re wrong, DEAD WRONG. XP SP3 rocks and runs far smoother than Winblows 7.

    Stop trying to force crap like Winblows 7 on to people who know how fast and solid XP runs.

    • Scali says:

      Oh please, these videos just (deliberately?) use crappy drivers to ‘prove’ a point. A proper Windows 7 installation doesn’t have these issues. Not even my Core2 Duo 1.5 GHz laptop with Intel X3100 IGP, which is a LOT slower than a GeForce 8600. Any Windows 7 user can tell you that these videos are not representative.
      Stop spreading FUD.
      Also, you (like other XP fanboys) are completely ignoring the other things mentioned that make Windows 7 faster on modern systems (better memory management, better scheduling, better pre-caching, I/O prioritizing etc).

      • XP says:

        Keep lying to yourself, Winblows 7 faggot in denial.

        You know it’s true, no GDI hardware acceleration means slow GUI.

      • Scali says:

        1) Windows 7 *does* have GDI acceleration. You’re the one spreading lies here.
        2) The advantages and disadvantages of the new Windows 7 display model and GDI have already been discussed.
        3) Don’t use foul language like that. Show a little respect.

  6. XP says:

    http://www.tomshardware.com/reviews/ati-2d-performance-radeon-hd-5000,2635-6.html

    “The performance level that Windows XP sported in 2D is still very much missing.”

    Even Tomshardware says that, keep on lying, Winblows 7 faggots. Everyone knows the truth, Windows 7 is based on crappy Vista and NT6 codebase which is pure utter crap.

    • Scali says:

      We already covered this in the comments.

      • XP says:

        It’s obvious you don’t even READ. Even with newer driers, the performance is still slower than XP. Hey, why bother even talking with Win7 losers, it’s obvious they’re blind and refuse to accept the truth. The benchmarks at Tomshardware don’t lie and the Youtube videos don’t like, Win7 is slow, unresponsive turd.

        Sure, maybe in 2020 when MS finally bothers to port everything in Windows to Direct2D and software developers finally migrated to Direct2D you guys can have responsive UI that XP users had back in 2001. Until then, shut up about XP, you Win7 losers don’t know shit about good OS.

      • Scali says:

        No, YOU don’t read why GDI benchmarks such as the Tom2D bench are not relevant to real-world usage, and don’t make any effort to show any of the new Windows 7 features of GDI.
        Also, clearly OS responsiveness and GDI rendering speed are not the same thing!

  7. What I hate about Windows is they really a product that seemed to be an improvement of the previous version just to find out that there are bugs on it. And the “new features” suppose to improve the user experience but in the case of Wndows XP, I am not satisfied with it as I found a lot of features that Microsoft removed that I thought was good.

    • Scali says:

      That’s the problem with off-the-shelf solutions in general.
      They try to cater to a very large audience… you may like some features, but the majority is better off without them.

  8. NewImprovedJdwii says:

    Windows 7 is a clear upgrade over xp
    I’ll explain why 7 is a clear choice over xp
    1. Support(i think the support lasts until 2020 not 100% sure but xp is on its last leg with Microsoft and many other software developers) and security, which makes it a clear choice for businesses and basic users who like to click at ever ad on facebook.
    2. Gamers Since windows 7 has directx 10/11 and Windows 7 uses multiple video cards more efficenly and yes multiple cores which matters more and more everyday.

    My own experience with windows 7 is much greater then it was with XP which likes to say windows explorer not responding which happened to me even on a high-end PCs which 7 NEVER does. I believe windows 7 is a smoother OS with its graphical interface and i never really don’t get any viruses and on XP i did.

    I’m actually quite happy scali is not recommending XP if he was i would have to tell him he is wrong.

  9. Christofoo says:

    On your argument about the OS footprint and cost of hard disks, you’re forgetting about SSDs. Even now, it’s not a gigantic issue, some people may think I’m nitpicking, and in a few years SSD $/GB will drop to the point of true irrelevance, but currently good SSDs are around $1/GB, so the extra ~15GB for Windows 7 costs about $15… but not really:

    SSDs come in 2X increments with a non-linear price/GB, so this is a go/no-go test. For example, if the extra 15GB pushes me and my usage profile over the edge from 128GB to 256GB, then I take a ~$80 penalty.

    That’s the boat I’m in. 64-bit/4GB-RAM (Win7) support vs footprint/speed (SSD) cost.

    Furthermore I’m not so sure the footprint penalty for Windows 7 is only 15 GB. On my seasoned machine at work the C:\Windows\ folder is a whopping 24 GB (obviously not including the pagefile and hybernate.sys), which might suggest a 20 GB WinXP-to-Win7 penalty. But it’s tough to plan hard drive size for Windows in general because it’s footprint grows as a function of updates and whatnot. I’m still not sure what to plan for.

    Thanks for the article, by the way. SSDs aside, your arguments are good ones.

  10. Maza says:

    Scali,
    What was/is so great about hardware accelerated audio in Windows XP? I do not quite understand…

Leave a comment