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."
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
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.
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 .
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
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.
Or in other words, developers spending less time on petty optimization to work on features and bugfixes.
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!
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?!
You want cross platform, you want platform support, so get used to VMs and WRAPPER code.
You want language interop, you have to live with COM, DCOM, CORBA, XML Web services, SOAP, UNO. If not, then go back to your Amstrad or Sinclair.
FFS you cant have your cake and eat it.
I derive utility from them and my hardware can handle it. This is not bloat.
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!
But people AREN'T demanding it. It's being foisted upon them. Nobody is DEMANDING that windows-xp is to be delivered on all new peecees except Microsoft.
That which does not kill her only prolongs my agony.
More than just code bloat: disk access speeds combined with the increase in size of everything (for "richer content", "more features", etc).
With a lot more files, a lot larger files, etc, your performance at file access (and disk caching) will decrease unless you can increase the throughput and decrease the seek time/latency of data access from the disk.
Back in 1998, most PCs were shipping with 5400 RPM hard drives; I bought a used 10k rpm drive for 200$. Nowadays? Most PCs are still shipping with 5,400 RPM drives, and 10k RPM is still good performance (although not the best out there - although, mine back then wasn't top of the line either).
Disk sizes are scaling up wonderfully. Disk access speeds are not. The same holds true with RAM.
Dear Lord: One of your creatures may be hurt tonight. Please let it be the other creature.
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.
The bottom line is that optimization is rarely the best thing a developer can be doing with his time. There's a lot more you can do with "a day" than tweak a poorly thought out algorithm. By all means optimize if your program is as slow as molasses and your profiling shows that a particular section of your code is at fault. Otherwise, good programming practice is to think about other things.
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 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.