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."
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.
spyware, trojans, p2p apps.
"As God is my witness, I thought turkeys could fly." A. Carlson
'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
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.
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.
You miss the point of the poster. New programs take about as much time to do things on today's systems as old programs did on yesteryear's systems. Old programs are blazingly fast on today's machines.
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 .
Have you ever used a completely unpatched windows xp? its fast and stable as hell. It's just full of a zillion security holes. Worse than swiss cheese. If you take it and add all the patches all the way up to the very latest hotfixes, you will notice its slow as hell. That's sans-spyware and additional software. The same thing goes for Office.
Take OSX. Why do people need the dual G5s? Well, its for that fancy gui and shite. If you take that away those boxes are fast as hell. They eat up their cycles with pretty pictures.
And look at Linux, the favorite of slashdot. If you run a "crummy" distro like fedora or lindows or something then your user experience is pretty average. If you use something l33ter like gentoo or debian your user experience will be phenomenal. But whatever performance you've gained by setting up a "real" system you lost all that time when you set the thing up, in the case of gentoo. Or in the case of debian you lost that time learning how to set the thing up.
I tried the new ubuntu linux and this is a very nice distro. It's just as good as a perfect clean debian system, but you don't have to waste time setting it up. The only problem is that all packages that I saw are built for 386. So you're not going to get the most out of your cpu.
If you want your cycles back then run linux without X or run netbsd or something. No matter what you choose, you're going to lose time somewhere. My suggestion is to spend the time to build gentoo, then image a bunch of machines. You get your time back and your cycles, as long as you have multiple machines of similar hardware.
The GeekNights podcast is going strong. Listen!
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
Sure, I could spend time making my program more efficient... but why waste a week of my time doing that when the cost of a faster computer is so much cheaper?
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.
well, then tell me, why does it still take my acrobat reader 10 seconds to launch? 10 seconds for excel? heck, why does it take 30 seconds to launch the OS?
If it launched any faster, you wouldn't see the splash screen and the pretty advertisements + legal boilerplate.
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.
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?!
From a technical point of view, yes, a very typical Apple design. Good enough to fool the average user but bad enough to really, really fucking annoy the user with atypical, demanding, or stringent expectations and needs.
I derive utility from them and my hardware can handle it. This is not bloat.
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.
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!
The other part is that as time goes on many programmers are lazy and they don't think though the code and optimize the code because it is fast enough. There are not as many real programmers that take pride in their code and make it efficient.
Fight Spammers!
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.
Nope, wrong. Task manager reports working set, which is whatever memory windows THINKS the process is using at the moment.
Reporting the total memory allocated by an app is meaningless, because much of that memory includes things like memory-mapping DLLs that are only loaded once, and shared amongst all processes using them.
Windows constantly trims pages from the working set of each process that haven't been accessed in a while and pages these out to disk.
When you click the minimize button windows assumes that the app (or at least large parts of it) are going to be inactive for a while, so it tries to remove as many pages from the working set as possible - hugely reducing the "memory usage" reported in task manager. Sometimes it is a little too agressive in trimming pages from the working set, and the "memory usage" immediately climbs a little again, as the app accesses memory pages that windows thought it could page out.
Try it with an app like MS Word that has background threads that constantly check spelling and stuff, and you'll see the working set goes up for a few seconds after you minimize it.
I'm sooo sick of people looking in Task Manager then saying how much an application sucks because of how much "memory" it uses. For the most part, memory is not a factor.
You think that's annoying? You should try having to put up with all people who complain "X is sooooo bloated" because they looked at memory usage on top but have no idea how it is calculated for X, nor what the figure really means. Every single article that has any mention of X11 gets at least 15 posts all saying X is bloated based on top, and every time there are a bunch of people who give long and careful explanations as to why the figures in top are the way they are. And then the next article comes along and a whole bunch of people decide to demonstrate exactly how little they've learned...
Jedidiah.
Craft Beer Programming T-shirts
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.
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.
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".
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.
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).
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.