Slashdot Log In
Why Windows is Slow
Posted by
Zonk
on Tue Mar 28, 2006 09:19 AM
from the i-blame-lazy-gerbils dept.
from the i-blame-lazy-gerbils dept.
hype7 writes "The New York Times is running an article on why they think Windows is so slow. They boil it down to one key factor - legacy support - and they hold up Apple as an example of a company willing to make hard decisions around legacy support in order to provide a better product. From the article: 'Windows is now so big and onerous because of the size of its code base, the size of its ecosystem and its insistence on compatibility with the legacy hardware and software, that it just slows everything down ... That's why a company like Apple has such an easier time of innovation.'"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
if only (Score:5, Funny)
You want faster Windows? (Score:5, Interesting)
If you want faster Windows, use nLite [nliteos.com]. It's a beautiful tool that lets one take a Windows XP installation CD and make any number of modifications to it: remove unwanted components/drivers, preset Windows settings, slipstream hotfixes and service packs...even completely automate the installation process by presetting all installation information (license key, etc.). Then, it generates a brand spanking new ISO for you to burn and use for installation. It's glorious.
After nLite-ing my personal XP installation, I must say I have never been happier with Windows. I've left it running for weeks with no problems. A fresh installation of my nLited XP is just over 1 GB of HDD space (whereas the typical XP installation can top 3 GB). It could have been less, but not without removing several components that I wanted to keep.
Granted, this tweaking is not without its quirks. I do occasionally get a warning about "unrecognized file versions", but thus far ignoring them has not caused any problems. I would suggest the following though: I know it's tempting to remove IE right off the bat, but trust me when I say don't. It is needed for some very important functions (such as updates). Also, I would caution against removing Windows Media Player as well. Sure, you may never use it (hell, I never did), but if you remove it, it takes its codecs with it, which can cause other apps to not function properly (such as Winamp). I guess you never know what you have until it's gone. If you're bound and determined to remove it, then I highly recommend the ACE Mega Codecs Pack [free-codecs.com] as a replacement.
Happy hacking!
Parent
Windows XP Embedded (Score:5, Informative)
Definitely don' delete IE :-)
Windows XP Embedded lets you do a thing similar to what you are describing - you can create an image only with the components you select and the tool keeps track of component dependancies so it prevents you from creating a broken image by requiring the missing dependancies.
This is where the fun starts. There are dependancies you wouldn't imagine. I wanted to create a very minimalistic XP image with basic API functionality and TCP/IP networking. Impossible. The DHCP component requires the SNMP component, which requires the HTML Help component, which requires, yes you guessed it, Internet Explorer !!!! DHCP client -> Internet Explorer : it makes perfect sense.
Then I foolishly wanted to add SP2's firweall support. The firewall required all kinds of COM and DCOM components, including Microsoft Transaction Server (!!!) or similar crap and of course Internet Explorer as well. Why, oh, why, does a network firewall require Microsoft Transaction Server ?
Of course these dependancies are not always critical - I am sure I could have deleted IE from the image and DHCP would still have worked - but nevertheless it is funny that MS claims IE is not a part of the OS, while it must be present in the simplest OS image :-)
Getting back to the subject - I definitely wouldn't use a tool like nLite - you end up with an unsupported custom version of Windows and you never know what is going to break, which service pack or update is not going to install, etc. It is not worth the hassle.
Parent
Re:Windows XP Embedded (Score:5, Informative)
Why, oh, why, does a network firewall require Microsoft Transaction Server ?
MS Transaction Server is middleware used in the development of (frequently COM based) internet/network apps. COM is pretty much the basic messaging system used for most MS app, it allows you to use modules from different programs interchangeably (like embedding explorer and stuff like that). So, those will be required for quite a bit of MS software.
but nevertheless it is funny that MS claims IE is not a part of the OS, while it must be present in the simplest OS image
MS has never claimed this! They claimed the exact opposite in fact during the anti-trust trials as a reason they couldn't un-bundle IE.
Parent
Transitions.... (Score:5, Interesting)
In contrast, I've had a fairly difficult time getting older software on Windows to even run sometimes. We kept a Win95 box around for the longest time because of some very specific software we needed that would not run on anything else.
Re:Transitions.... (Score:5, Insightful)
Build the whole OS as a tight, single codebase that supports VMs, then let the VMs handle backwards compatibility. I never understood why 100% of the population has to suffer for the 3% that wants that parallel port handheld scanner to work.
Parent
Re:Transitions.... (Score:5, Interesting)
You can download Visicalc from http://www.bricklin.com/history/vcexecutable.htm [bricklin.com] and it will still work. It is from 1981. It targetted MS-DOS 1.0 which was before subdirectories existed (the big feature of MS-DOS 2).
As I like to say, Microsoft puts the backwards into backwards compatibility.
Parent
Re:Transitions.... (Score:5, Informative)
No not really.
OS X is only the crappier solution if running old apps is more important than running new apps.
All the old windows cruft going back... However long has an impact on new programs. OS Xs solution keeps all the cruft in a nice little box that can be forgotten about. The fact that older software is slightly harder to run also encourages people to port their software to the new OS and get out of the compatibility box.
OS X is the crappier solution for running old software.
Windows is the crappier solution for writing new software.
One is not clearly better than the other. Each has it's advantages and drawbacks.
As a user I like OS/Xs method. I want the latest and greatest. As a developer I like Windows method. Why you ask? Simple I don't have to port my code to the new environment to have it look right. Frankly the bar for Windows developers is much lower than Mac. You can get by with a lot less effort for a longer amount of time in Windows than the Mac.
A proper Windows98 program will look good and run well under XP and if you do things the right way under Vista as well.
That is the point of the article. Windows is being held back by all the old crap that adds complexity and makes moving forward a real pain.
Should Vista still run old dos programs? If so maybe DOS and 16 bit windows programs should be run in a VM out of the way.
The other way it is hold back innovation is that it is really easy to sit on your laurels in the Windows world. Once you are established it is hard to get bumped out of your position. It is really hard to write a much better Windows program than what is already established in the marketplace. A big change like from Dos to Windows and OS/9 to OS/X is like a fresh start. Everyone has to come up with something new and innovation can really happen.
Parent
Emulation Layer (Score:5, Insightful)
VM Layer or legacy-free installs? (Score:5, Interesting)
If this isn't practical (having to run one each of the above layers could gobble tons of RAM), then at least providing a way to do a legacy-free installation with the option of adding support for older environments later. Systems that didn't need it wouldn't have to have it added, perhaps improving performance.
Parent
GNU/Linux Legacy (Score:4, Insightful)
Be careful how far out your ass you talk. (Score:5, Interesting)
Dynamically linked ones can work, too, provided I install the libraries that support them (and I can install them concurrently with modern libraries, since their names include the versions of their interfaces). Only libraries and programs that directly use the Linux system call interface (not the POSIX interface) are unlikely to work.
Quake binaries of that era function. The OpenGL 1.x interface they use is provided via my OpenGL libraries. OSS is emulated by Alsa. I can use fancy new binaries given by the Quake source code, if I want, but it's not required.
In fact, the best part about Linux you could say, is that I am not locked to archaic binary interfaces because most of my code is available in source form to everyone, including people who are willing to recompile it for me and provide it in a nice distribution (Kuuntu) with minimal interaction on my part.
So we can support legacy, but we choose not to. This choice is important in software use freedom.
Parent
Vista (Score:5, Funny)
Stupid article title (Score:5, Informative)
Fo those who simply refuse to RTA I will summarize, to wit: the article deals with the pace of Wiindows software releases and the recently announced delay of Vista... not the speed at which the OS loads and executes applications.
how many billion dollar deployments... (Score:5, Insightful)
That said, I do wish more were done with virtualization to clean out the main OS.
Fresh start (Score:5, Insightful)
TERRIBLE name for the article! (Score:5, Insightful)
Re:Windows is slow? (Score:4, Informative)
Parent
Re:Windows is slow? (Score:5, Interesting)
I am not against Microsoft, and I make quite a bit of money developing software for their operating system, but I have found that more stuff works out of the box on my systems with various linux distros than what works with a vanilla install of Windows.
Parent
Re:Windows is slow? (Score:5, Insightful)
Boot time again, try to compare hybernation not boottime. http://www.suspend2.net/ [suspend2.net] for Linux...
I mean: apples and oranges anyone?
Parent
Re:This isn't why Windows is slow... (Score:5, Informative)
Parent
Re:This isn't why Windows is slow... (Score:5, Informative)
There's also code in place to check for old pieces of software which wouldn't otherwise work with newer versions of windows, eg:
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
(taken from http://www.joelonsoftware.com/articles/APIWar.htm
These kinds of things are going to have an effect on performance, and an even greater effect on development time (windows, late again?)
Parent
Re:Apple Provides SOME Legacy Support (Score:5, Informative)
If you ask me, though, that's the right design decision. First you make a system that works according the specifications, and only after that should you worry about optimizations.
Parent
Re:Apple Provides SOME Legacy Support (Score:5, Interesting)
That's easy to say in 2006, but 10-15 years ago the "footprint" of the OS was a huge purchasing decision.
Why do think Apple dumped so much money into Copeland? Because at that point in time, the average Mac had 8MB of RAM and they could never have shipped a Unix-based OS that required 64MB or so of memory.
Parent
Re:SnailSoft (Score:5, Insightful)
Here's What You Need to Use Windows XP Professional
PC with 300 megahertz or higher processor clock speed recommended; 233 MHz minimum required (single or dual processor system);* Intel Pentium/Celeron family, or AMD K6/Athlon/Duron family, or compatible processor recommended
128 megabytes (MB) of RAM or higher recommended (64 MB minimum supported; may limit performance and some features)
1.5 gigabytes (GB) of available hard disk space
Mac OS X Version 10.4 requires a Macintosh with:
PowerPC G3, G4, or G5 processor
At least 256MB of physical RAM
At least 3.0 GB of available space on your hard drive; 4GB of disk space if you install XCode 2 developer tools
While we're comparing apples to oranges, I've got a few for you too.
BTW XP was releases Oct. 2001? and Mac OS X Tiger (10.4.0) was released just last year? That's like 4 years. You've GOT to be kidding me? Have you seen what's changed in 4 years? Or are you still living in a shack somewhere with your 233Mhz Windoze box?
Here are the requirements for slackware 3.4:
3.4 (Kernel 2.0.33)
* Intel 8086
* RAM - 8 MB
* Minumum Drive Space: 40 MB
Man, your windows is so complex cuz it requires at least a Pentium.
Here's the kicker, if you actually READ the article, it's not even focused on the running speed of windows compared to everything else. It's saying because of all the legacy support, that adding any features requires so much work and testing to make sure it doesn't break anything else for the last 20 years of windows programs. And because of this it's "slow" in terms of being able to add features or to innovate.
If you want a real comparison, why don't you take the requirements for Vista which isn't even out, but might have some of the features Mac OS X already! And guess what the requirements for Vista is going to be?
Parent