Where Have All The Cycles Gone?
Mai writes "Computers are getting faster all the time, or so they tell us. But, in fact, the user experience of performance hasn't improved much over the past 15 years. This article takes a look at where all the precious processor time and memory are going."
2% word processing
3% gaming
5% internet
90% feet warming
Rock that crushes, Paper & Scissors that don't matter.
Simple. Code bloat.
Boobies never hurt anyone. - Sherry Glaser.
I used to be able to fit the system, the finder, mac write and 3 X 8K docs on a floppy. Now I could barely fit a word document.
This is totally insecure, but very convenient.
Launch a few applications simultaneously and time their start-ups. Try it again in five years to see whether the time has improved.
I think it'll be the same, given the same machine.
Rock that crushes, Paper & Scissors that don't matter.
spyware, trojans, p2p apps.
"As God is my witness, I thought turkeys could fly." A. Carlson
Mr. Seebach points out that "computers are, in fact, doing more than they used to. A lot of the things computers do are fairly subtle, happening beneath the radar of a user's perception. Many functions are automatic and, as discussed in last month's column, you could probably do without some of them."
This recalls an analogy drawn by a recent Economist article. Unlike most automobile analogies popular among Slashbots, this one is actually rather appropriate: "By the 1930s, ... the car had become more user-friendly and ready for the mass market. ... [T]he makers' increasing skill at hiding the technology from drivers ... meant that cars got hugely more complex on the inside, because most of the tasks that had previously been carried out by drivers now had to be done automatically. This presented drivers with a radically simplified surface, or 'interface' in today's jargon."
Given this lesson drawn from history, I disagree with Seebach's conclusion that "the worst is probably over" in terms of code bloat and complexity. Computers still have a long way to go before they can approach the ease of use and stability we demand of every other consumer appliance in our lives.
The aforementioned article requires a paid subscription to view, so in the interests of convenience, I'll reproduce it here.
--
SURVEY: INFORMATION TECHNOLOGY
Now you see it, now you don't
Oct 28th 2004
From The Economist print edition
[Image]
To be truly successful, a complex technology needs to "disappear"
THERE has never been anything quite like information technology before, but there have certainly been other complex technologies that needed simplifying. Joe Corn, a history professor at Stanford University, believes that the first example of a complex consumer technology was clocks, which arrived in the 1820s. Clocks were sold with user manuals, which featured entries such as "How to erect and regulate your device". When sewing machines appeared in the 1840s, they came with 40-page manuals full of detailed instructions. Discouragingly, it took two generations until a trade publication was able to declare in the 1880s that "every woman now knows how to use one."
At about the same time, the increase in technological complexity gathered pace. With electricity came new appliances, such as the phonograph, invented in 1877 by Thomas Alva Edison. According to Mr Norman, the computer-design guru, despite Mr Edison's genius for engineering he was a marketing moron, and his first phonograph was all but unusable (in fact, initially he had no particular uses in mind for it). For decades, Mr Edison fiddled with his technology, always going for the most impressive engineering solution. For instance, he chose cylinders over discs as the recording medium. It took a generation and the entry of a new rival, Emile Berliner, to prepare the phonograph for the mass market by making it easier to use (introducing discs instead of cylinders) and giving it a purpose (playing music). Mr Edison's companies foundered whereas Mr Berliner's thrived, and phonographs became ubiquitous, first as "gramophones" or "Victrolas", the name of Mr Berliner's model, and ultimately as "record players".
Another complex technology, with an even bigger impact, was the car. The first cars, in the early 1900s, were "mostly a burden and a challenge", says Mr Corn. Driving one required skill in lubricating various moving parts, sending oil manually to the transmission, adjusting the spark plug, setting the choke, opening the throttle, wielding the crank and knowing what to do when the car broke down, which it invariably did. People at the time hired chauffeurs, says Mr Corn, mostly because they needed to have a mechanic at hand to fix the car, just as firms today need IT staff and
'memory is cheap'
'disks are fast'
'processors are fast'
nobody cares about optimizing code anymore.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
Windows 3.1 and Notepad run nice and fast on my 3.2GHz 8GB RAM box.
Computers are getting faster all the time, or so they tell us. But, in fact, the user experience of performance hasn't improved much over the past 15 years. Peter looks at where all the processor time and memory are going.
Ummmmm..... No.
A number of years ago, I had a project that required three days for each calculation. Just for kicks, when I got my dual G5, I ran the same calculation with the same parameters and it was complete almost instantaneously. Yes, yes....I know..memory bound performance versus disk swapping of memory space, but at the time, the memory on that system was maxed out (128 MB for $5000).
I also know that one of the games I helped work through beta (Halo) would absolutely not run on much hardware older than a few years ago.
Visit Jonesblog and say hello.
Someone needs to ask Clippy what he's doing with all those spare cycles.
[Insert pithy quote here]
I think the user experience is faster; it's at least richer. You can go ahead and throw windows 3.1 or dos 5 on your machine and watch it scream. Obviously that's now what people want. As long as people demand innovation and new features, they will continue to require more and more power.
You can't eat your cake and have it too.
According to Task Manager, Notepad on Windows XP takes up 2,768KB of memory when you start it without a file loaded.
Mind-blowing, isn't it? If anyone has stats for analagous programs on OS X or X, I'd be curious to see them.
There's been so mauch change in the past few decades that people keep expecting the same amount of change everywhere. Many people know nothing else. UI as developed by PARC then refined by Apple and Micrsoft hasn't really changed much except for evolutionary steps. There's no revolution coming. Cars have been driven the same basic way since the Model T. Its my firm belief that there will not be revolutionary things such as the printing press, radio, tv, and the Internet coming withing the next 100 or so years. Its time to start refining what we've created rather than look to supplant it.
Some good things that have eaten more memory and cycles (all of which have improved the user experience, as opposed to what the summary states):
1 Programs that check your work as you go (e.g.: autocalculate on spreadsheets)
2 More help dialogs, things watching for cameras, and whatnot to smooth the user experience.
3 More use of IM and other software in the background much of the time.
4 Services running so that it's faster to sort and search files, open your favorite programs, etc.
In short, lots of stuff running to make your experience smoother, even if it doesn't look like it's doing much more.
Some bad things:
1 More viruses, etc.
2 The mandantory virus scanner that has to run in the background all the time because of (1)
3 All the crap adware that installed more than it used to be.
These are just a few of the trends I can think of . -- Paul
OpenSource.MathCancer.org: open source comp bio
Where have all the cycles gone, long time passing
Where have all the cycles gone, long time ago
Where have all the cycles gone, gone to spyware everyone.
When will they ever learn?
When will they ev-ear learn?
Right now I have 12 windows open.
So a lot of my cycles are going to managing my ability to work in several programs at once. My old iBook at home allows me to have all of two windows open at once... and with noticable performance drops.
If I seem short sighted, it is because I stand on the shoulders of midgets
That would be the number one way to waste cycles on any low end system nowadays. I swear, I've seen P4's with Intel graphics run slower than PIII's with even a mediocre card in it.
But, in fact, the user experience of performance hasn't improved much over the past 15 years
.. for DOS) to the KDE/ Gnome file managers (Ok MC looks the same still :) ). :) ) .
Now that really depends on what you would call 'user experience'.
Compare a file manager 15 years ols (PC Tools had one right
Compare pine to Thunderbird.(though I still use pine on my old laptop
Compare Usenet clients or say Lynx to Firefox,
Compare Doom 3 to Pac Man
Comapre the fancy graphics on OS X to Win 3.1 or whatever OS Mac had then
No Sirrr I say the user experience of performance HAS changed. Maybe not directly proportional to the Proceessor speed increase (due to code bloat ?) but still its much much better. Thats my $0.02 .
Hello world of today is larger than ten years ago
I think that the article writer just realized what a lot of computer buyers don't : CPU speed != more performance, ESPECIALLY when you look at graphical display and Word processing (at least he didn't include "web surfing speed").
Where are my CPU cycles and memory going on my AMD 3500+ and 1Gig 400MHz DDR Ram? Most of the time, nowhere. 1% CPU usage, commit charge 150 megs / 1 gig. Honestly, if you don't use CPU intensive apps, there's a limit to the 'improvement' you can expect in 'graphical display' and 'word processing' speed. But sales rep will tell you otherwise, for sure.
Eureka Science News - automatically updated
I didn't rtfa, but..no. Nine years ago I used to start my word processor (Ami Pro!), then go take a leak while it loaded. What a BS claim.
Evil is the money of root.
I started out on a 8088 processor 11-12 years ago. Now I am using a dual proc G5 at work, which is so fast I can no longer blame the computer for my coffee breaks. It takes a good bit of video rendering to keep it busy long enough for me to get a coffee refill.
This has been a Public Service Announcement. Not to be confused with anything useful.
My girlfriend has a cycle every month. It causes me problems, so I can imagine it must cause some problems for the computer as well.
Generally (at least on my less used windows box) i have most of the following running most of the time....
1) VoIP Client
2) Messaging Client
3) Word Processor
4) Multiple Web Browsers
5) Email Client
6) Probably some graphics or photo editing tool
7) Something playing music
In addition there are various other background processes like desktop indexing, things watching for my digital camera being plugged in, smart start stuff...
Linux is probably worse since i keep Apache and often Tomcat running all the time.
Back in the day, this was never how it was done. You'd optimize config.sys to get the absolute max amount of free conventional memory.
Multitasking has improved to the point that many users probably run close to 100 processes at any point in time..
prstat here says i'm on a system with
Total: 3741 processes, 6739 lwps
Fair enough it's a shared box, but that scale was impossible a decade ago.
So Apple is bucking the trend, or their first versions of OS X were an inefficient piece of crap and they are just now optomizing it.
just like users will manage to fill most of the storage space available (no matter how large that may be), user tasks will manage to fill most of the cpu available (no matter how fast the cpu is).
the subjective performance of overall data processing hasn't changed much, but that's just because task complexity has increased as cpu speed increased.
15 years ago, most applications were far less computationally complex than they are today. it has little to do with code bloat.
Apple II (1 MHz 6502) did animated graphics with sound and controlled floppy access while polling the keyboard (The Bard's Tale)
Amiga (14 MHz 68000) had complete GUI, multi-tasking, on 256K RAM.
The old saying that "Intel giveth, Microsoft taketh" is about right. The CPU's have gotten faster, with the Microsoft O/S taking more and more cycles to do the same thing.
for crying out loud, why does a 5 MB MP3 take 60+ MB of memory to play?
because that's the size of the uncompressed waveform. You don't play the MP3, you play the waveform that is compressed inside the MP3. iTunes just decompresses the file all at once, and puts that into memory, instead of a bit at a time like some players.
distributed.net is where all the smart CPU cycles have gone! :)
Pretty Pictures!
My friends ask me why I haven't upgraded my 400mhz machine in years. Look at all this new stuff they say, look at all this eye candy. Look at these great new games.
And then I load up my MUD client, with simple, 16 color text in a 12 point font. This is my favorite game.
And then I load up my word processor, AbiWord, which renders as fast as I can type and has a nice spell-checker. This is my favorite word processor.
And then I load up Kmail, Mozilla, and all the other "normal applications" which have never had a problem with virii or worms.
And after all this they realize, the problem with my computer is THEIR expectations, not my software and hardware.
(And then they ask me when I'm going to replace my rotary phone... I can't win them all.)
Trying to use sarcasm in text-based forums does not work.
As any computer science student knows, most processors spend 99 percent of their cycles waiting. However, now they're waiting much faster.
Do you have any evidence whatsoever for this? It's not a good idea, and iTunes uses a constant amount of CPU while playing music, indicating a normal buffered, streaming decompression scheme.
Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
So that's why it failed to play a 200MB mp3?
Not very good design, is it?
Even on systems with limited resources, the lack of proper thread priorities makes the system seem slower than it should be. When MS Word does it's automatic spell check, there shouldn't be a noticeable drop in UI performance (lag between hitting a key and a seeing letter appear) if the CPU intensive tasks ran in the background. The same applies to how FF lags badly when I open a PDF inline or how Explorer's interface locks and doesn't refresh properly when it's previewing a video file or reading from a slow CD drive. The same should apply to background tasks like virus scanners, but they tend to have the added overhead of using IO which is harder to multitask smoothly.
If the program was designed so that the functional part of the application had the highest priority and the eye candy and fluff ran in the background, the user wouldn't be as annoyed with the high peak performance requirements of certain programs.
--
Free iPod? Try a free Mac Mini
Or a free Nintendo DS
Wired article as proof
Is that it is (like nearly every other system out there) an economical system; it's all about supply and demand.
I this case there's a supply of plenty of clocks. There's an (existing) demand for a certain level of performance; if the supply outstrips that demand, then the supply is devalued, and consequently the programmers don't spend as much time conserving that resource.
Or to put it another way, programs behave like a gas with respect to responsiveness and user expectation; they expand to fill the available space.
Or to reword it another way (quoting from the article): computers are, in fact, doing more than they used to. A lot of the things computers do are fairly subtle, happening beneath the radar of a user's perception. Many functions are automatic and, as discussed in last month's column, you could probably do without some of them.
I am disrespectful to dirt! Can you see that I am serious?!
I haven't had to set an IRQ or DMA setting in years. I've not had to mess with himem or any other arcane memory configs and boot disks, restarting my entire system each time I want to run a different game.
Each time I plug in a new joystick and it just works, each time I plug in a new digital camera and it's just there as another drive, each time I alt-tab out of a game, check a walkthrough website, then alt-tab back, I think back to the old days where code was really efficient and didn't do any wasteful background tasks like that.
I remember helping a friend with a C++ assignment, via the net. Each time, she'd have to exit her telnet program, run Borland's C++ compiler from the command line, check the output, quit the compiler, reopen telnet, reconnect to the MUD we were talking over, then describe what had happened. Now... She'd just show me what's on her desktop via Messenger while we kept chatting.
And if some cycles get used up doing weird UI gimicks that I'll never use - like making the UI scalable so the partially sighted can use it, I'm willing to trade that.
For all those reasons, I'm more than happy that my 2^(years / 1.5) faster PC "wastes" all of those extra cycles. And that's before we get on to things like built in spell checkers and real time code debugging as I write it.
I don't want a 2^(years / 1.5) faster experience. I want all those cycles put in to making things work closer and closer to how I just expect them to work.
I don't know about anyone else but I can't code 2^(years / 1.5) faster so I wouldn't be able to keep up with that damn responsive text based compiler. On the other hand, I am that much faster overall as I now call an API that adds all that "bloatware" instead of having to code my own damn mouse drivers, my code is largely debugged on the fly and I can't remember the last time I lost several days just trying to format a newsletter in to columns.
So, before saying the cycles are wasted:
Pick an every day but semi complex task that people do now. For example: For a homework project, go on line, grab half a dozen graphics and ten blocks of text from those websites, put them all in to a stylishly laid out newsletter format. Do that on a P4, then do it on an a DOS PC from 15 years ago.
See if matching the same quality of work doesn't take you 2^10 times as long on that old PC, assuming you can even do it at all.
Those cycles aren't wasted. Sure, we do the same basic tasks but we do them with vastly more flexability and don't have to waste days of our lives wrestling with configs to do what we now consider simple tasks. That's where the speed is.
I've found the same -- and my iBook is 4.5 years old now, too. I was expecting the newer versions of OS X to make it choke, and justify a new one, but Nooooo ..... at least, not yet.
timothy
jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
I derive utility from them and my hardware can handle it. This is not bloat.
I somewhat disagree with the premise of the article. 10 years ago, a barely usable word processor took 15 seconds to start up. I remember Wordperfect 6 being a terrible resource hog on my measly pc. Compare that with the load-times and responsiveness of AbiWord and a lot of progress has been made. The same with Mozilla/Firefox. Netscape 4.0 took something like a minute to load on my 386dx40/4mb iirc. Firefox takes 2 seconds (amd 1800+, 512mb) and has much more functionality. So, in my opinion, user experience of performance has improved. I think people might have forgotten how bad stuff really used to be performance-wise.
5 years from now some *nix (most likely the latest iteration of MacOS) on parallel cell CPUs. 10 years, a unified virtual machine so applications will be OS independent(I think by Microsoft) 15 years Computing will be a commodity. I will pay $N a month for computer usage (based on what specs I want my computer to have). There will be ubiquitous dumb terminals (everywhere from home, to work, to school) each will have a massive (by today's standards) data pipe. You authenticate and it will become your computer. Your desktop of choice, your files, your preferences. There will be few massive datacenters, so everything is amazingly scalable and centralized. If I want to do video editing, I will have access to supercomputers worth of power while I need it, and while word processing I will use almost nothing. Right now, it looks like Google will run these datacenters.
The dekstop files & folders paradigm is fine if marketing dweebs stop designing wizards that hide simplicity in a layer of complexity. What if I had a maid who said "I see you just set a piece of paper on your desk? Do you want me to file it for you? Great, I'll just shred this original while I'm at it, and you can conveniently ask me to find it whenever you need it!"
Example 1:
My dad plugs in his digital camera, and it displays a camera wizard. Great! It asks for the album name and places it in a convenient album with a nice slide-show.
The next day, he wants to edit one of the pictures, or copy it, or rename it. Too bad. Because it's now in a proprietary format in an album management program. The wizard was completely unnecessary. It have been easier for him to create a folder and drag the files into it. It would have functioned in the normal way files and folders work. He would know where they are, and could open, email, rename, delete, etc.
Another example: .MP3 file? No? Maybe it's a .WMV file? .OGG? .WAV? No... it's in the media library. And there it lies forever. You can't play it with anything else. Now I show her how to use CDEX, and click the CDDB button, then the RIP button, then whoa! And she can do whatever she wants with it.
My mom inserts a CD and Media Player asks her if she wants to rip the files to the media library. It even does a CDDB lookup and names the albums accordingly. Great! So where's that
Now I want to email that file. But I can't. Because it's not in a file on the file system, it's hiding in some "convenient" media library for me. And I want to view the pictures in the order the camera took them.
Don't you think that if we all had zippy computers with slim, efficient operating systems and applications that made modest use of resources, and had only the features people wanted, then there would be a lot of bankrupt technology companies and unemployed programmers since no one would be upgrading their systems (much)?
* Excerpt from Aldous Huxley's Brave New World *
"We condition the masses to hate the countryside," concluded the Director. "But simultaneously we condition them to love all country sports. At the same time, we see to it that all country sports shall entail the use of elaborate apparatus. So that they consume manufactured articles as well as transport. Hence those electric shocks."
"I see," said the student, and was silent, lost in admiration.
By the way, current number of mouse-clicks to configure viewing an MS Outlook sender in a given color:
17
Don't $top that fat, gravy-train from rolling! Keep the bloatware coming!
It would be interesting to graph system startup times year-by-year with then-standard distros running on then-standard hardware. I suspect start-up times haven't changed significantly since the 70's.
Does anyone here recall the famous if not accurate "Whoa, Win95 boots in under 3 seconds!!!" usenet thread?
Startup time is currently an area where the likes of Windows XP excels over Linux. On an Athlon 2600+, XP takes 6 seconds to boot (and become usable) whilst Fedora Core 3 takes closer to 90 seconds.
Yes, both use prelinking (or prefetch if you like), but linux distros still don't load independent services in parallel, and I suspect Fedoras prelinking is far from optimized.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
A lot of people like to wax nostalgic about the good ol' days when things were faster, all the while ignoring the featuresets implemented today. The fact is, yesteryear's code wasn't as advanced or featured. A word processor from ten years ago may have been pretty damned fast, but today's word processors load dictionaries to spellcheck your document and grammar as you type and import graphics.
Windows 3.1 may have been incredibly snappy, but it also lacked propery memory protection, wasn't 32-bit addressed, and didn't provide an intuitive interface. Also, more advanced typography (anti-aliasing) and filesystem indexing services like Spotlight come into play, as well as all the important system daemons running in the background that are now considered stock.
It's not that things aren't getting any faster because of bloat. It's because as power increases, the ability to add new modern features to the original experience is utilizing that extra power, just as it should.
> 60% itunes (for crying out loud, why does a 5 MB MP3 take 60+ MB of memory to play?)
Two things. First, could it possibly be under Windows? Try minimising it and tell us again.
Next. To put your question differently "Why does Matlab uses 300Mb just to add two numbers?" Because it is intended for more than that?
"Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
1) pr0n
2) Sharing pr0n.
Well, there's spam egg sausage and spam, that's not got much spam in it.
I think all programming students should have to code for a system like this. It gives you a MUCH greater appreciation for what the compiler is doing for you, and what the consequences of simple changes can be.
Indeed - it's quite a pain trying to port bloated code to an embedded environment, even if it's nowhere near as restricted as the one you're describing. And if you're running off battery power, then every clock cycle costs you battery. It's amazing how hard it is to describe to some people how much of a problem that is. This is something that infuriated me about (for example) Vorbis - a lot of the design really doesn't permit a low footprint, so at the end of the day it's actually a rather battery expensive codec to use.
Still, the old saying that 90% of cpu time is spent in 10% of the code holds just as true for power consumption. In my case, you optimise the MP3/WMA/Vorbis/etc decoder to its limit, and speed up disk reads (to keep it spun down as much as possible). It's due to these efforts that stuff we make (see my info) has far better battery life than rival products. And as a bonus - that also makes user visible responsiveness much better.
Most of it's down to careful design and not micro-optimisation. It really doesn't need a smattering of assembler all over the place (but maybe a couple of functions here and there, e.g memcpy and friends). Perhaps one day people will realise this also holds true for laptops, and we'll see those cycles getting used a bit more efficiently...
It's a conspiracy!
Their software steals a few zillion here, a few bajillion there. Then, when we have exhausted all our naturally occurring cycles, they'll make a killing selling their horded stockpiles to us!
Chas - The one, the only.
THANK GOD!!!
If you have the entire contents in memory you can be assured of not skipping if there becomes contention for the disk. iTunes on the mac is famous for not skipping no matter the system load, guess why?
--- I do not moderate.
They said they were never your cycles in the first place.
paintball
I hate talk about bloat, slowness, and lazy programmers. For the same tasks, computers are far easier to use today than even 5 years ago. Never mind the fact that we can also do about 10 times as many different tasks now, than we did when I first started using PCs 10-15 years ago.
Yes, if I could find a floppy drive, and get a dos boot disk to boot, I could theoretically run a wickedly fast instance of WordPerfect 5.1. I wouldn't be able to surf the web, send email, listen to MP3's, work wirelessly, or work with graphics though -- and yes, graphics (e.g. diagrams) do have a proper place in day to day work!
Do people even remember the non-PNP days? IRQ's, IO Ports and the rest? Non-multitasking? Non-Memory protected (i.e. complete OS crashes from app errors?). These issues didn't seeem so bad back then since "that's the way it was", but now, I dread ever having to deal with those limitations again. Futzing with IRQ's for an hour just to make a modem stop locking up a PC is not my idea of productivity.
Hardware is cheap. Time isn't. I just hope we keep finding more ways to make my use of computers even easier.
You think marketing departments need features to sell an product. Marketing's job is to sell regardless of what they are given by the programmers, they will hype up anything. Just becuase the retail box has a giant list of features doesn't mean the program is bloated.
unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
The parent was understandably modded a troll, but I have to say that I agree with the sentiment, if not the exact words. My recent experience with OSX and the iLife apps is exactly that: Apple writes software that is very slick and nice for the average user, but really limited and arguably even broken for the user with atypical or demanding needs.
My wife's new iBook is pretty, but if it were my iBook, it'd be running Linux by now.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
I don't know about you guys, but back when I was running linux on a 33 MHz 80386, my kernel compiles went overnight. Now they take, oh, ten minutes.
I'd say that's an improvement, wouldn't you?
nobody cares about optimizing code anymore.
You can optimize in many different ways: for run-time performance, maintainability, extendibility, usability, compatibility, and probably a bunch of other ways I can't think of just now.
Many of these are at odds with each other. And since computers are getting faster, I think it's perfectly reasonable to start trading off run-time performance with some of these other things.
Accountability on the heads of the powerful.
Power in the hands of the accountable.
I could use resizable and rotatable vector fonts, create and import both bitmap and vector graphics, and load both a spellchecker and thesaurus in my copy of GeoWrite that ran under GeoWorks Ensemble 2.1 and MS-DOS 3.3 in 1991.
Not only that, but the program was well-designed enough to provide four different levels of UI complexity (allowing new users to use it without getting lost while expert users could enable all the features and even customize the toolbars), and the PC/GEOS environment itself provided multiple threads per process and preemptive multitasking but was fast enough to be considered "fast" on my 286 with 1MB of RAM and a VGA card.
The PC/GEOS folks got around the bloat because they were interested in doing so, and they were successful in almost all respects.
Modern coders seem a lot less interested in doing so, perhaps because so many of them take the bloat for granted. It wasn't always so, as many of us remember...
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
Am I the only person who read this as "Where Have all the Cylons Gone?"
Two things. First, could it possibly be under Windows? Try minimising it and tell us again.
Well, that's just shite interface programming. Other apps don't suck 60MB to display a window.
Next. To put your question differently "Why does Matlab uses 300Mb just to add two numbers?" Because it is intended for more than that?
Matlab is designed to perform complicated calculations and analyses, so simple integer addition is an inappropriate application. iTunes is designed to play media files, so playing an MP3 is an appropriate application. Your point is void.
"Because Science" is one step from "Because old book". Try "Because of my experiment testing my falsifiable assertion".
(1) with assembly language and a good macro-assembler, one can actually write fairly programmer-friendly code,
(2) non-PNP cards are often a lot easier to support when something goes wrong during hardware resource allocation (at least with IRQ and address jumpers you KNOW where the device thinks it should be), and
(3) text-mode is more portable than a GUI while still being easy to use if a good text-mode UI is also present (remember that drop-down menus and mouse support are not the exclusive domain of bitmapped environments).
My copy of OS/2 Warp 4 running at home on my 192MB PPro/200 box is capable of doing most of what you cite, and yet it seems at least as fast as my 512MB 2.4GHz P4 box at work running Windows XP. Both multitask, both run Firefox well, both play or rip MP3s in the background, and both can work with graphics. The OS/2 box is actually capable of running in higher res given my work monitor's limitations.
So where is the productivity gain, exactly...?
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
The more effort you put into something, the less additional return you will get.
The more cycles you get from your CPU, the less additional power you will get.
I think the main reason is that we don't need the power. The first X Mhz you put in will get grabbed up for the most important things (running the OS). The next X will be used for running the foreground program. The next X will be used for bells, whistles, to multitask, whatever. The next X will be used for - well - nothing very useful, because you are already doing everything useful.
This isn't about Audio API's - it's the whole app framework. WinCarbon some call it - the portion of Carbon ported to Windows to make Quicktime work and give the Apple look-and-feel to native windows apps.
Apple doesn't want to port every iTunes change to MFC. They write it in Carbon, keep the Windows-specific bits separate, and then just develop on Mac and recompile on Windows.
Yes it makes iTunes heavy weight and slower and a second class citizen. But it achieves Apple's goals.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
As for myself, I can tell you:
Computers really aren't that slow anymore. I used to stay on the bleeding edge in performance, and ever since the first Pentium III and Celerons arrived I have been happy running stuff that isn't the latest generation.
The key is running with enough RAM and a reasonably fast hard drive. Programs consume a lot more RAM these days (and operating systems subsequently spend more cycles managing it), and hard drives are still horribly slow relative to everything else.
That said, until recently I owned a PowerBook G4 1GHz/512MB, and on that box I usually had to wait for anything. Apple did a great job on the user interface, but there's a ~50ms latency pervading the entire GUI, and whoever implemented Finder and the SMB file browser deserves to be hacked to death by flocks of rabid zombie pigeons.
When I bought a Centris 650 in the early 90's, it was noticably faster--so much faster that I brought it to work to show my boss, as I was sure he would not believe my stories of how fast it was.
This same thing has happened to me with every generation of PCs, too...it's not just a Mac thing. I buy a new machine, and marvel at how much faster it is.
Furthermore, I can go the other way to verify this. I still have my Centris 650 in storage, and booted it up a couple years ago. It was so slow that I could not believe that I ever found such a slow machine usable.
What is really going on is that it doesn't take us long to get used to a fast machine, and since we normally never go back, we don't realize just how much faster things are now.
I had a new Dell 3.4 come into the shop last week. It was slower than our cash register box(450 PII). Of course, if any box out there had 64 processes running at start up it would be a bit slow. The customer had the box for 3 weeks. First scan with Ad-Aware = 2803 critical items. A new store record. Plus 247 on Spybot, 8 virii, 15 trojans. I'm really surprised it didn't blue screen at boot (had 2 of those last week).
Crap uses up processor time.
Professional Politicians are not the solution, they ARE the problem.
Thanks for the link. Here's one from the jargon file about real programmers.
The Story of Mel
This was posted to Usenet by its author, Ed Nather
(nather@astro.as.utexas.edu), on May 21, 1983.
A recent article devoted to the macho side of programming
made the bald and unvarnished statement:
Real Programmers write in FORTRAN.
Maybe they do now,
in this decadent era of
Lite beer, hand calculators, and "user-friendly" software
but back in the Good Old Days,
when the term "software" sounded funny
and Real Computers were made out of drums and vacuum tubes,
Real Programmers wrote in machine code.
Not FORTRAN. Not RATFOR. Not, even, assembly language.
Machine Code.
Raw, unadorned, inscrutable hexadecimal numbers.
Directly.
Lest a whole new generation of programmers
grow up in ignorance of this glorious past,
I feel duty-bound to describe,
as best I can through the generation gap,
how a Real Programmer wrote code.
I'll call him Mel,
because that was his name.
I first met Mel when I went to work for Royal McBee Computer Corp.,
a now-defunct subsidiary of the typewriter company.
The firm manufactured the LGP-30,
a small, cheap (by the standards of the day)
drum-memory computer,
and had just started to manufacture
the RPC-4000, a much-improved,
bigger, better, faster -- drum-memory computer.
Cores cost too much,
and weren't here to stay, anyway.
(That's why you haven't heard of the company,
or the computer.)
I had been hired to write a FORTRAN compiler
for this new marvel and Mel was my guide to its wonders.
Mel didn't approve of compilers.
"If a program can't rewrite its own code",
he asked, "what good is it?"
Mel had written,
in hexadecimal,
the most popular computer program the company owned.
It ran on the LGP-30
and played blackjack with potential customers
at computer shows.
Its effect was always dramatic.
The LGP-30 booth was packed at every show,
and the IBM salesmen stood around
talking to each other.
Whether or not this actually sold computers
was a question we never discussed.
Mel's job was to re-write
the blackjack program for the RPC-4000.
(Port? What does that mean?)
The new computer had a one-plus-one
addressing scheme,
in which each machine instruction,
in addition to the operation code
and the address of the needed operand,
had a second address that indicated where, on the revolving drum,
the next instruction was located.
In modern parlance,
every single instruction was followed by a GO TO!
Put that in Pascal's pipe and smoke it.
Mel loved the RPC-4000
because he could optimize his code:
that is, locate instructions on the drum
so that just as one finished its job,
the next would be just arriving at the "read head"
and available for immediate execution.
There was a program to do that job,
an "optimizing assembler",
but Mel refused to use it.
"You never know where it's going to put things",
he explained, "so you'd have to use separate constants".
It was a long time before I understood that remark.
Since Mel knew the numerical value
of every operation code,
and assigned his own drum addresses,
every instruction he wrote could also be considered
a numerical constant.
He could pick up an earlier "add" instruction, say,
and multiply by it,
if it had the right numeric value.
His code was not easy for someone else to modify.
I compared Mel's hand-optimized programs
with the same code massaged by the optimizing assembler program,
and Mel's always ran faster.
That was beca
I want a new world. I think this one is broken.
You can verify this for yourself. Get a file containing a virus signature (find an old trojan somewhere). Disable your virus scanner, copy it to an arbitrary place on your machine, rename it to .dat, and turn on the virus scanner. Your virus scanner won't pick up the file unless you've set it to active scan everything on certain intervals. Leave it there for a few weeks and it will never be picked up by the passive process because the passive process *doesn't worry about non-executable data*.
CPU usage caused as a result of automatic spellchecking is another howler. Its one thread, which will spend most of its time blocking for IO (thats you, chief!) Typical usage patterns will see no slowdown due to the checking thread -- open up your favorite resources manager and start banging away at MS word, unless you type faster than God or start dumping copy-pasting or macro magic into the file your CPU usage won't even budge. The algorithms, by the way, give maximum priority to the user input handling threads and close to minimum for the background checks, because word processor developers know the perception of speedy response is one of the key features of their product. As a result, they'll generally not start spell-checking a copied block until the CPU is otherwise underutilized (i.e. blocking on user IO).
Help poke pirates in the eyepatch, arr.
During all that time, he's cut run times by at least 50%. He's working for a non-profit, and they don't necessarily have the money to spend on new hardware.
You have fallen into the trap. You are failing to account for the amount of computing time that can be saved. If you can cut the run time of a program in half, there's that much more computing time and power available. Do it to several programs, and you can find yourself with several extra hours of computing time. What you propose is that every time you need to improve your run times, you have to spend an extra $200+. What he did was he cut out the need to continuously spend extra money per the Wintel methodology.
He's trying to weed out the modern day "programmers" who don't know why you should declare doubles before longs and floats, longs and floats before ints and pointers, ints and pointers before shorts, and shorts before chars.
I put it to you thusly: he's trying to save money in the long term, while you're being penny-wise and pound-foolish.
OCO is Loco
Okay a few comments here:
On the downside, antialiasing sucks up a lot of processing power.
I don't see how this is possible. After scaling, the font should be properly cached as a bitmap. Thus, it would not use very much CPU after being rendered into memory. Has the author of this article actually benchmarked this to show how "slow" antialised fonts are? Or is he making stuff up.
Visual effects like drop shadows behind windows and menus, transparent menus and effects, and real-time effects also consume a lot of processing power. The catch for computer makers is that most users expect them.
Transparency and shadows should be accelerated by the video card. This should result in minimal CPU cycles being used for this. But really, if this eye candy is bothering you, just disable these features and you're computer is 100x faster again. Often, it's not the rendering of these effects that makes the computer slow, but the fact that an animation HAS to occur before something else happens.
support code that no one really understands
What does he mean by this? He's equating more manageable code with slower code. Is he implying that complex, unmaintainable code is faster? I've never seen that to be the case.
Each of these programs pre-loads its own shared libraries
This is something I'll agree with. Each time I install a new driver for some device on my computer it requires a service on startup to use about 5MB-10MB of memory. My guess is that the driver developers don't think it's worth their time to optimize memory usage.
The reason why some applications are slower is simply because it was never in the requirements for them to be faster. It's just a quality control issue. There is a trade off between time to market and software performance. The performance usually is the last thing considered in a product (just get it working first).
1. Control Panel:Display:Appearance:Effects -- turn stuff off.
2. Control Panel:Mouse:Pointers -- turn shadow off
3. Leave the desktop blank
4. Run: services.msc -- turn stuff off (Themes, indexing, other items you do not need -- be careful -- here there be dragons)
Lots of petrified grits
Only on Slashdot: a senseless reply to sarcastic humor gets modded "insightful"...
I have no problem with your religion until you decide it's reason to deprive others of the truth.
Linux actually is incredibly fast, especially if you tweak it. The only time my Linux ever feels slow is during boot, and that's my desktop -- my laptop "boots" (from Software Suspend) in less than 40 seconds, and it's 1 ghz, 256 megs of ram, 15 gig hard drive that can't be more than 5400 rpm...
You're right, new features get added, but I got decent performance on a 200 mhz workstation with Gentoo. It's only when we got into the things that cannot really be optimized (compiling, 3d gaming) that I had to by my current box.
The only place Linux ever feels slow is the same place Windows does -- starting programs, loading stuff from disk -- only less so, with less ram. And it's still much faster, because I can tweak Linux much more easily than Windows.
Don't thank God, thank a doctor!
Dont forget the 30 different peices of spy ware all trying to advertise for you and doing 50000 registry mods per second to try to stay alive.
Oh btw, install Win2k and see how damn fast it is compared to XP.
No, a disk cache keeps frequently accessed data on permanent storage in RAM to make it quicker to access.
What you buy from the RAMdisk is fast startup of any apps located in ram.
Right, so you optimise the operation you'll only ever be performing *once* for the whole time you're using the app by wasting memory it could be using to do whatever it is that it does.
Have you ever heard of "optimise for the common case" ?
Of course, now you have two copies of the application in RAM - one on the RAMdisk, and one in system RAM executing - so you pay in RAM for what you gain in speed.
Yes, and this is why (modern) disk caches and RAM disks are basically the same thing. A RAM disk makes accessing the app's data - executable,m libraries, etc - faster by copying it into RAM and executing it from there. But this us *also* exactly the same thing a disk cache does. So, you're sacrificing *twice* as much RAM as you need, just to make starting an application up faster (probably the most infrequent operation you'll ever perform within each application).
Not to mention the time you use "precharging" the RAM disk is going to be *at best* the same amount of time you use starting the application for the first time and letting the disk cache do its work.
You really need to read up on how disk caching works - there's a very good reason RAM disks aren't used much any more (there are a few - very few - situations where they can offer benefit, but optimising application startup times isn't one of them) and that's because on modern systems, disk caching gives a much bigger overall performance boost.