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.
Into running bloated software, of course.
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
XP and MS Office 2003 chew so many resources, that my 98SE + Office 97 kicks its ass. Or even a 486 with Windows 3.11 and Office. Code optimization is a thing of the past.
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.
20% system
20% various useful programs, like browsing, mail, games etc...
60% itunes (for crying out loud, why does a 5 MB MP3 take 60+ MB of memory to play?)
In Soviet Russia, asses suck this joke.
As hardware capabilities improve, people often forget that software utilization of these resources increases as well. The applications users are interacting with are simply improving at the same rate, and attempt to harness more of the available hardware power. But as applications try to do more, the user won't be able to notice any performance improvements. Rather, they get the luxury of new sets of features that are made possible by these hardware improvements.
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
The code itself is typically very efficient for its task, and it does make the job of developing large-scale applications much easier. But the code that enables all these small pieces of code to interact in a predictable manner adds a small runtime cost. Once again, a small cost repeated many times adds up to a significant performance hit.
...but it sure beats programming in assembly. While it's good and all, it really gets hard to follow for large-scale projects. Having maintable code isn't such a horrible thing. (True, if they're compiled intelligently, it shouldn't make such a huge difference..., but you're not going to be able to get a machine to compile assembly as compact as you could write it yourself).
Everyone posted complaining about crappy languages, (and in certain cases they do have a point).
I store my recipes online (the way nature intended)
the user experience of performance hasn't improved much over the past 15 years.
:)
I wouldn't say that. Sure, applications have become heavier and more resource intense but I'm still able to do new things (almost) everyday that I was never able to do a year/month/week/day/nanosecond ago.
It's not how many CPU cycles you have, it's what you do with them when you've got them.
Applications today do far more interesting things than the days of old when computer resources were less.
Example: I know except from 5pm when I get home till 2am when I go to sleep all those CPU cycles are just dust in the wind. That's why I like BOINC because it uses those cycles which wouldn't otherwise get there day in the sun.
Of course, I frown on applications that are ridiculous resource hogs and have no respect for my 1GB of RAM.
-Teiresias
Umm it's made by Apple? They make things that look good, not work good.
Your hair look like poop, Bob! - Wanker.
They've all been outsourced to India (and all I got was this crappy T-shirt).
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 .
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!
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
and
char pat[4096];
while(uspo.exists()){
for (int i=0; i<4096; i++){pat[i]=(char)rand()%256;}
upso.submit(num++,pat)
}
Windows in 6 Bytes (IA-32) : 90 90 90 90 CD 19
Twm is incredibly snappy here.
Computers really aren't getting that much faster anymore. Desktop processors really hit a big bump at 3 ghz (a couple of years ago now) and haven't gone up much since then. This is why you're reading all the hype about dual-core systems now. Intel and AMD have brought the single-core CPU about as far as it can go without some major new breakthroughs, or skyrocketing prices.
AdWare ...Choose one. ^_^
Bloated/Unefficient Code
Malware
Memory Leaks
Microsoft
Spyware
Unnecessary System Tasks
Virii that have gone undetected
Umm it's made by Apple?
Nah, then it'd be
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
The new stage in code bloat is fatware. To go along with spyware, spamware, trojanware, drmware, bigbrotherware, software, hardware, firmware and wetware.
It has gone into mouse, menu and other shaddows, appearance effects and such crap. I thought I couldn't believe my eyes when I saw a Window minimizing on MacOS X for the first time.
I don't suffer from insanity, I enjoy every minute of it.
Over all they are getting faster. More memory in helps to speed things up as well as the actual processor its self. But with the software that's out there now it requires more power out of the processor. So I guess we will just have to put more hamsters on the wheels to make it even faster.
What you would expect; you perform the same functions, but they look prettier, then your machine is laboring to constantly defend itself against the outside world. On the other hand, if you're running simulations, you'll notice a massive improvement in computer power, so maybe this perceived "slowness" is instead just impatient users. (for those of you running WinXP on a P133, yes, you don't just think it's slow, it is slow.) Kind of makes me miss Wordstar. On the other hand, think of how many fewer cycles would be left if AfterDark were still available.
the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
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?
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.
Assuming a well-written anti-virus product, the performance hit would scale linearly with each new family of virii released into the wild. More viruses in existence (even if they're not attacking you at the moment) means slower PCs because the anti-virus code has more to check before letting you do something productive.
Chip H.
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.
Just the same as workload increases in proportion to available time, and expenses for vices increase to match disposable income, so too processor cycles required scale as CPU speed increases.
Oh wait, 15 years ago I was not playing 3d massively multiplayer online games at 32 bit color depth, it was solitaire in 16 colors.
Going on means going far
Going far means returning
My applications are much more feature-rich and perform much faster and more smoothly than they did in 1990.
The author even points out that it's the automatic spellchecking/grammar/etc features of word processing programs that tend to slow them down. Even with all the features of Word and all the eye-candy features of XP enabled, my experience is much smoother, quicker, robust and productive than it was in 1990. Don't even get me started on IDEs. I don't think the author makes much of a point.
But then XFCE 4.2 comes out, and I decide to try out the whole compositing thing .. oops, my computer feels old again. Sure looks pretty, though. ;-)
As for virus scanners, if this is slowing you down, you've already made a fundamentally bad decision. The correct approach to viruses is to avoid getting them in the first place, not to look for them after they have already arrived. (And once you have the virus, you can't really trust a scanner, anyway.)
If you ever get infected with a virus, the foremost question on your mind should not be "why did my virus scanner fail?" It should be: "how did I get into a situation where it's possible for me to run untrusted code?" Fix that problem, and you don't even need to have a virus scanner anymore (although I guess there's still value in defense-in-depth).
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
I've always "tuned" my systems. In windows, this means setting certain services to "disabled", removing useless programs from the Startup, and checking a few registry keys. Very handy link - blackviper
You can't talk about Wikipedia's flaws on Wikipedia
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.
Once again, FVWM, lynx, etc are all there and debugged for the whiners who bemoan complex software.
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.
I run DC projects, so no cycle is left unused. That was not the case in the old days.
:-)
Bert
Currently running OGR (http://www.distributed.net/ogr/)
Team EvangeLista (Macs Rule!
The "waiting time" was almost always acceptable, it is the cooler capabilities that people care about.
or else!
All your cycle are belong to us
Anyone for audio processing?
I remember noise algorithms taking up to 8 minutes to run against a 3 minute 16 bit 44.1khz wav win95 in 1997. On winxp today, the same operation on a 3 minute 24 bit, 48khz wav takes just under 15 seconds.
Both operations done in cool edit, same version. Just as slow, my butt. The new versions of cool edit enjoy a similar run time.
I challenge any one of you to pull out that old win95 PII box, and start word or internet explorer.
I think your memory would get a bit sharper as soon as you did it.
C'mon, computers are infinitely faster now. Maybe it's all that spyware you've installed on yourselves or something.
l8,
AC
I think the name says it all...
Bloatware.
It plagues us...
If you wanna see the performance improvement, install DOS on you P4, or Win311 or even Win95...
WOW, what an improvement...
HAY BILL...Just because the computer CAN handle more load, doesn't mean YOU need to find ways to waste it...
--E--
Crap.
I was hoping to see some actual cycle counts from a full-system profiler or something.
"But all your emitter and collector are belong to me!"
It depends on what you're doing, both in terms of operating systems and apps.
Some OSes and apps keep sucking more and more cycles; in fact they drive much of the direction of new hardware.
I use Linux (RH8) at home and at work. The system at work is several times faster than the system at home, and for things like web browsing, it shows. For anything I normally do that doesn't push the graphics too hard, the system at home is usually fast enough, whereas the one at work usually feels really fast.
If I used the same hardware with an even vaguely recent version of WIndows (and I have) the system at work would merely feel adequate, and the system at home would be a joke (will XP even install on a 500MHz system?)
I use windows 98 because 95 wasn't stable. As long as Microsoft doesn't make any move to obfuscate windows 98, I'm in the clear since it doesn't bloat as much as newer OSes.
God spoke to me.
Say whatever you want to about the article, the author's HOT.
I wonder what the "p" stands for... Patricia? Petunia?
m-
p.s. yes, yes i know. it's a joke. laugh.
You catch enchiladas by picking them up behind the head and holding them underwater until they don't kick anymore -VeGas
distributed.net is where all the smart CPU cycles have gone! :)
Pretty Pictures!
i still keep my 16 mhz 4mb ram notebook around. it runs win3.11 and has word 6 installed. Comparing to word 2000 on a 500mhz 192mb ram win 2k machine I see no difference - neither in features nor in speed.
The article doesn't go in much detail why I actually need such a fast processor. I can't imagine why a fresh intstallation of win3.11 runs fine on 4mb ram but win2k needs 60 without doing anything
See pictures of tits
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.
I don't scan my archives for viruses,
;-)
I still have no dropshadows on my desktop,
neither does clippy annoy the hell out of me,
most of the programs I use are below 1.0
and still performance is up on par with my Win3.1 box from 94.
But then again, also much faster than a comparable XP box would perform. I assume.
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?
Jesus, look at the picture of the guy. Cut your hair you fucking hippie, this isn't the 60's. We don't smoke marijuana in Muskogee.
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
think of your fancy graphics,
anti-aliased fonts
drop shadow windows
animated icons
My Amiga 3000 [base, no PPC] still seems to do most of its processes just as fast as my P4/3.057 HT machine, if not faster.
The only thing my P4 machine actually does faster is 3d rendering in Lightwave, [which requires windows] and it has a completely different rendering method now than the Amiga version did, even the difference between older PC versions and the current one are noticable.
Video Production Support
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?!
title Hello World Program (hello.asm)
; This program displays a lively greeting
dosseg
.model small
.stack 100h
.data
hello_message db '34t m3, b330tch!!1!',0dh,0ah,'$'
.code
main proc
mov ax,@data
mov ds,ax
mov ah,9
mov dx,offset hello_message
int 21h
mov ax,4C00h
int 21h
main endp
end main
"submitted by: Anonymous_Coward@everywhere.net"
The user experience has improved a *LOT*. I *remember* what it used to be like,
waiting for programs to load off a 5.25" floppy, and it's *WAY* better now.
I *remember* what switching between three applications did on a 386SX with
Windows 3 and 1MB of RAM, and it's *WAY* better now.
So, one place the cycles have gone is straight into making the user wait less.
The other place they've gone, obviously, is into features. I remember when
an "advanced" feature in a word processing program was scalable fonts, or a
spell checker that took 30+ seconds to go through a one-page document. Today
we take OOo's frames and tables and autospellcheck for granted and wish it
did paren-matching and had a better UI for rotating objects. These are things
even some desktop publishing apps didn't have in the 80s, and now we expect
every word processing app to have them.
What hasn't improved is the general level of computer literacy in the end-user
population at large.
Cut that out, or I will ship you to Norilsk in a box.
Frankly, I think people forget how comparatively slow machines used to be. Simple operations like opening up new windows or launching new programs that used to take many seconds execute in a quarter the time (or even less) than they used to less than a decade ago. Does anyone remember how long it took for Windows NT to present a login box after you pressed Cntrl-Alt-Delete?
The thing is, it's been a gradual process, and we're talking about a difference of a few seconds. Sure, you have to do *everything* 4x faster to go from 4 seconds to 1 second, but the perceived performance difference is only a few seconds, so you tend not to see it as a big deal.
sigs are a waste of space
Was any surprised that something of this caliber made onto slashdot. Also modern CPU's (x86) cannot execute multiple instructions in one clock cycle. Pre-execution / branch prediction do not count since these operations are performed during idle CPU cycles and not during the execution of an instruction. It's perceived. Unless of course you have a dual core CPU or two separate CPU cores.
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.
My linux box running xfce flies.
Though Open office taking up a 114MB of ram is a bit annoying...
Yes Francis, the world has gone crazy.
Not missing option, but missing point - My personal opinion on this is that Computer Software Engineers are no longer paying attention to their engineering. There was a time when a software engineer would sit down and think about exactly what their program needed to do and how - they would come up with algorithms that made it do it extremely fast (and I don't mean optimizing code, I mean coming up with algorithms of lower complexity). These days a developer sits down, hacks it together, sees that it works, and it works well on their 3 GHz development system and leaves it at that, they don't care that it doesn't run if you add 5 more bits of data to it because it's an exponential complexity algorithm.
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'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.
Grammar different.
Socialism: a lie told by totalitarians and believed by fools.
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!
Yeah, there's really no reason to do things that way since IIRC the MP3 format is divided into nice streamable blocks. That would be spectacularly lazy design if true.
Yes.
... uses 4MB when loaded without a file opened. At least that's what activity monitor (is that the english name?) tell's me. Uups, now it's gone to 6,17MB without me doing anything! tststs...
:-p) files (searchable without timedelay) on display and playing an mp3.
On the other hand: iTunes needs just 26MB, and that's with an opened window, around three thousand (legal
Seriously, my Mac has 765MB of RAM. On idle, the largest Memory-eater is the Windowserver (40MB). With seventeen userland-programs running and fifteen windows on display (all active! One exposé-click shows they are alive) I still get like 400MB of free memory. And I haven't booted my little sweety for six weeks of hard work (which builts up reserved memory). I can live with that. Yes, go on, call me a user.
If you had the choice to run software that is bloated, buggy and slow, or software that is lean, well-tested and fast, which would you run?
FBUI
I used to work in the benchmarking biz for a computer company. When an older system was "just fine" for our customers, we had software developers make more complicated software and had benchmark designers make more complicated benchmarks to show how people needed newer systems.
The fish grows to fit its pond.
There's a fine line between my sarcasm above and the truth.
In Soviet Russia, asses suck this joke.
I for one would very much NOT like to return to the user experience of performance of 15 years ago. For christsake burning a CD 10 years ago was witchcraft.
love is just extroverted narcissism
That's not true at all! You try and work on a personal computer of 15 years ago, then work on a new P4 or Athlon XP and tell me you can't see the difference.
This is absolute exaggeration.
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!
iTunes just decompresses the file all at once, and puts that into memory, instead of a bit at a time like some players.
Yeah, either that or they're loading an OSX API compatibility layer into memory with iTunes to keep a common codebase.
We'll just assume Apple engineers know nothing about audio playback then.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
running in the background. I wonder if this will make Linux machines more "efficient" than Windows on a "real-world" comparison.
I think the author missed some biggies:
1) Protected mode Windows consumes significantly more processor than DOS/Windows 3.1. Protected mode costs cycles to resolve virtual memory addresses. I seem to recall that loading a physical address into a 80286 (back in the day) register took a cyle or two. Loading a "selector" (a protected-mode memory reference) took 20 (or was it 50?) cycles on the 286. We took a huge hit on cycles for this one. And those selectors live on in today's x86 line.
2) Bad design has gotta account for many slowdowns in today's Windows UI. Get on any modern Windows box, open multiple applications that use the network, and you'll see one app block as it waits for some network resource that's been locked by the other. Obviously locks are needed, but fine-grained locking is critical any code (like a tcp/ip stack) that services multiple threads of exectution. My (non-scientific) observations indicate that there's work to be done on the tcp/ip stack in MS's products. The same is likely true on other platforms, but Windows seems to be a consistent mal-performer.
- The Kessel run is for nerf herders. I can circumnavigate the entire Central Finite Curve in a lot less than 12 parse
they have been thrown out of the window
stop supporting microsoft with pirating their software!!!!!
Most "standard" use on a machine with Windows OS rarely pushed the CPU over 80% for any significant time. The main thing slowing everything down is disk access. Processors and RAM have got much faster. The Burst speed of disks has got much faster but you still have only one head arm so the machine spends most of it's time waiting for the disk head to get to the sector it needs.
The requirements for applciations to come with hundreds of DLL's and other files means that the disk is always hunting for files.
The biggest thing now is time-slicing overhead. We run hundreds of threads at a time and things slow to a crawl.
I recently bought a mac. The dealer let me try out a single 1.8 GHz G5 for a few days. If I wanted to trade up to a computer costing a thousand more, he said he wouldn't mind.
The single G5 was very nice. Apps opened fast, windows moved smoothly, all of this stuff. Sadly, my Wacom tablet's driver took up about 50% of the CPU time when I was using it. That led to jumps in my penstrokes. There's something wrong with the Wacom drivers for the mac.
I figured if I went with the Dual G5 instead, the second CPU might be able to take care of that thread, letting the rest of the system get on with life. Perhaps the theory was naive. I'm sure someone will say I was being silly.
It worked, though. On the dual 2.0 GHz everything blazed. Now the tablet process rarely took up more than 4% of one CPU. In addition, I no longer experience those little hitches when one of the Expose animations is triggered, or when I switch between windows, or when something bounces on the dock. The raw CPU speed increase wasn't enough to explain the incredible jump in apparent performance. Things were far more than twice as fast, and watching a video file play at full frame rate while expose scaled every window on screen and a few files downloaded in the background was a real eye opener.
I think this happens with a lot of applications, not just the Wacom tablet. Poorly designed applications lock up the system every time the kernel hands control back to them. Application switching kills the cache performance. Applications that are sharing resources end up fighting over a specific access. The Windows process scheduler is pathetic. Whatever.
From my experience, as we move to having dual CPU or dual core systems more commonly, we won't see much raw performance increase.... 15%-75% is often quoted, and I don't doubt that. But having two processors so one doesn't get bogged down will make a huge difference in the way we interact with our machines... as long as we have an OS that takes advantage of it. When I've used dual Wintel boxes I've been seriously underwhelmed. I assume Linux is better at handing out threads.
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.
I thowt "Peter" was a boy's name ? We love you, Peter, but even Lars Ulrich and his boys got with the times.
From the cited article: A few of the programs I use on Windows run special programs at system startup. Each of these programs pre-loads its own shared libraries, which in turn allows the program to launch more quickly later. At one point, the delay from the initial appearance of my desktop to my system being responsive enough for me to start using it was up to about five minutes. Why? Because it was running a dozen or so programs to make programs load faster. The irony didn't seem funny at the time, but it does now.
I've noticed this, too. Slashdot may not be the best place to ask this, but I'm sure I'm not the only person here who has to use Windows as well as Linux, so -- does anyone know how to prevent all of this pointless preloading so I can boot in under five minutes? No doubt, a lot of this comes from programs I need to have, but which I only use infrequently.
Proud member of the Weirdo-American community.
Compiling simple AP Comp sci project with Turbo Pascal on an Apple IIe = compiling a full ACE-TAO tree on a 3.0Ghz Fedora box.
If you get rid of GUIs, it's all good.
0- Eamonman Proud member of DNRC
It is obviously in microsofts financial interest to deliberately slow software down, to perpetuate the cycle of hardware and software upgrade. Corporations primary goal is to maximize profits. Therefore no improvement is seen in 15 years because improvement would interfere with Microsofts profits.
The article exhausts itself in generalities and guesses, unfortunately. For example, it's hard to see why outline fonts (which are cached) or real-time spell checking (for which there are very efficient algorithms) should require a lot of CPU power.
Someone ought to actually do some measurements and profiling, do some real and hard thinking, and write it up. I suspect that most of the features we use daily could be provided at a small fraction of the memory footprint and CPU requirements if people were willing to invest the time and effort to do it. It's probably not worth doing that, but a few performance bottlenecks might be eliminated that way.
Just as the average income has increased over the years, so has the cost of living. As a result, your salary's economic value does not increase as quickly as its monetary value. Similarly, in the world of personal computing, CPUs may get faster all the time, but they also live in an increasingly expensive computing environment. So, why does everybody put up with this? Well, because it's what most people want. Just as most of us would rather not do without all of the technological services and amenities that we have today, even though they make life more expensive, most people would rather not use their modern PCs to run only MS-DOS v6, Word Perfect v5.1 and Lotus 123 v2.2.
I use to use nn and trn and gnus, any of these I preferred to any GUI news client I've found yet.
They were so fast, and GUI clients seem so slow...
But I don't use usenet as often as I used to, so I don't miss it much.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
But, in fact, the user experience of performance hasn't improved much over the past 15 years.
"And why should it?" asked Cynical Executive.
Once performance reaches the realm of Good Enough, you can start adding features to existing systems and rely on the hardware development curve to keep those inreasingly bloated systems at a Good Enough level. The lay user doesn't care if Word takes 10 seconds to open instead of 3 seconds, so efficiency R&D is wasted time and money. Just make it look nice, add a spellchecker, search feature, etc., and you're good to go.
I recall an anecdote about a major auto manufacture, back in the dawn of the automobile age. I think it was Ford. A high-level executive told his men to scour the junkyards for their cars and bring back whatever was in the best condition. What invariably came back was a piece called the "kingpin," which no longer exists in modern vehicles. The executive told them to stop making such a good kingpin, because its quality was much higher than it needed to be. It was wasted quality. Make it Good Enough, and save yourself a lot of money in R&D in the long run. Proper? Doubtful. Profitable? Hell yes. Make the product as good as it needs to be, and not an inch better.
This is where the power of monopoly comes in, by the way. And this is why companies that prioritize quality charge a premium.
I dont think the experience fo 15 years ago is the same as today. Granted the fun factor of "older games" (my fav. old game is prolly Dune I) is a little higher than today (run down hall, kill enemies, open door, repeat). Graphically there is no comparison. Thats where the cycles have gone, to make things look prettier.
The Doormat
If you're not outraged, then you're not paying attention.
> 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"
since I switched over to Apple the average speed of the system got faster. I got an iBook 500 and from update to update (i.e. 10, 10.1, 10.3) it starts up much nicer and seems to work better than better before. This is something I never experienced with any of the MS systems. Funny, isn't it?
Really, if any of you are actually running Linux instead of just pretending to and badmouthing Micros~1, take a look at top(1). The CPU Idleness only falls below 90%, except when I'm compiling something or running SETI@home: CPU clock is a completely bogus measure of performance! All else being equal, a 2GH processor will have an identical performance as a 4GH one, because memory and video hardware are much more important nowadays. If you have an old video board you will experience slowness no matter how fast your Super-Duper-Glitzy-Pentium 900 is.
Besides, most consumers buy crippled and overpriced glitzy toys from the first store that they go to; Most non-tech people buy based exclusively on the quality of he advertising, and then go on to complain that "When I click on the start button thingy it takes a while for the other thingy to appear! Make my computer faster! NOW!"
Looks like some VB/Java-type "developer" took offense and modded this down, but it's true.
The other sinkhole is network lag.
The first corrolary to Clarke's Third Law states: "Any Technology which is distinguishable from Magic is insufficiently advanced>"
If you think that the "user experience" hasn't improved with every new generation of CPU, then I dare you to spend a month using a Pentium 60 as your main system. Many Linux distributions will still install on such a CPU, so what are you waiting for?
Needless to say, I stuck to the cartridge games as much as possible. :-)
Clippy
I believe one reason why most desktops don't seem to live up to the performance process each next generation promises has mostly to do with bad programming habits. Today's developers are using so many high-level development tools that have huge, multi-leveled layers of abstraction that applications become incredibly bloated. It's nothing short of obsene when, for example, you note that a utility application requires x GIGABYTES of disk space.
There seems to be no incentive these days to write small, efficient code... not when you can keep consumers on a constantly spinning hamster wheel of hardware upgrades to compensate for your bad software design.
1) pr0n
2) Sharing pr0n.
Well, there's spam egg sausage and spam, that's not got much spam in it.
I checked out "shutterstock". It looks like a really bad deal for photographers. You should look into a real stock photography agency.
Start by reading The Photographer's Market.
Anyway, Apple has their own GUI library and probably a compatibility API to let them run iTunes on Windows. If you were talking about OSX, I REALLY REALLY know you're lying about your memory usage breakdown, because OSX is even more memory-hungry than Win2k. On my 128MB B&W G3, I fired up 10.2.3 and I was about 40MB into swap. I imagine it's even worse now.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
I learned to write macros for emacs (d'oh) which crank out the outlines of the most common LaTeX environments for me. Works pretty well.
The fastest system I ever owned was a Toshiba T1200 laptop (basically an 8086 XT processor).
It had a ROM chip that booted DOS, and you could designate a section of memory as a ram disk. It had no hard drive.
I loaded Wordperfect, and several other DOS utilities in the RAM disk which was not volatile as long as you had battery power (you could put it into sleep mode and it would keep the ramdisk up).
It booted fast, but wakeup was even faster. Apps on the ramdisk loaded super fast (because they were small), and I got more done from startup to shutdown.
It had the first supertwist backlit LCD display on the market - and a CGA 4 color video adapter to drive it.
I would equate its quality to that of Apple Powerbooks today - but the simple applications it ran screamed in comparison. I still have files I created on that machine.
With all the RAM we have available today - why don't we see more ram-disks? I know Knoppix uses one - and it seems to load apps very fast in comparison to disk-based systems...if RAM is cheap, why not load alot of it, spin up a ramdisk on bootup and put your most common apps on it for access by the user?
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
I'm not sure what this means exactly, but I found it in some sekret dokuments and I thought it looked suspicious...
for (x=0; x (cpuMHz * cpuMHz); x++)
FillMem(x);
https://www.eff.org/https-everywhere
Well... probably I'm the exception, my fastest machine is 400 Mhz and I still has not felt the need to upgrade.
Me
"History doesn't repeat itself, but it does rhyme." Mark Twain
just for the hell of it, and not a corollary to much of anything:
"Any sufficiently adverse technology is indistinguishable from Microsoft."
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...
iTunes has always been horrible in terms of CPU and memory usage, for some reason. actually, the original version ran reasonably well on my old iMac (400 mhz), and i assume that was because it had a lot of code in common with SoundJam MP, which it was based on (and which ran quite well). subsequent versions seemed to add all sorts of features, and perfomance became unbearable.
i have no idea how iTunes is built on the windows side of things, but i know it runs just as poorly. i avoid it at all costs.
I write this on a Fedora C3 Laptop. I have a VMware window running with an instance of Windows 2000, and an instance of White Box Linux. I have an MP3 player streaming from my network server, over my encrypted wireless connection.
I have 2 OpenOffice documents, and two monitors, giving me an effective resolution of 2650x1200, a smattering of Xterms, a calculator, and Kmail. Oh, and there are a total of 6 desktops - that's just what's running on THIS desktop.
In spite of all this, my 1.7 Ghz Centrino system is snappy and responsive. Even the Windows 2000 Virtual Machine performance is good enough to load Word XP and provide reasonable performance.
Where the h-ll are YOUR cycles going?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
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!!!
http://www.distributed.net
and here
http://www.grid.org
... Windows 3.0 and run fast (not that the real win3.0 was fast) or you can have it look like KDE and have it run adequately. You cannot, however, have it both ways.
Even with some caching involved, font rendering adds one more layer of processor overhead -- but no vendor would dare release an interface with bitmap fonts today.
Right. No vendor except RedHat/Fedora. And Debian. And Suse. And....
https://www.eff.org/https-everywhere
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
Stolen underpants.
You know what?
for( unsigned i = 10; i >= 0; i-- );
---- "If we have to go on with these damned quantum jumps, then I'm sorry that I ever got involved" - Erwin Schrodinger
I'm sure they optimized it a hell of a lot better than you could.
So don't say it was horribly optimized.
Okay that would roll us back to 1990. That would give us a Pentium 233 maybe?
Tell you what load up quake 2 on one after you put windows 98 on it. BTW do not hook it up to the Internet. Still do no thing that performance is improved?
Okay now try and play an MP3.
Rip a CD?
If you really think that performance has not improved in 15 years you are just nuts.
Yes you can probably scroll your WP 5.1 document just as fast on a 15 year old PC as you can scroll a Word document on a new PC. The new system does so much more than a 15 year old system it is just not funny.
If your current system is running too slow turn off the eyecandy, lower the resolution, and do not connect to the internet.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Windows: Everywhere. Thanks to Gate's vision of 'the richness of the PC experience' the special richness of interoperable features and channels in Windows which know on restraint along with MS's bloated sloppy coding make for sluggish slow ass apps that only run on 3.2Ghz + processors.
Mac: Though Apple have done good work in optimizing OS X a few areas still need attention like The Dock!
Also some developers in Mac OS X need to learn to write apps that when they are doing nothing they are actually DOING NOTHING.
firefox-bin is never doing nothing.
Photoshop ditto
And a host of legacy Carbon apps like MT Newswatcher are also to blame for stealing clock cycles.
Linux: KDE and Gnome are responsible for enormous wasted clock cycles there is no doubt. If KDE were a country it's currency would be the Bloat.
KDE and bloat are entwined.
Gnome while seemingly less bloated is actually slower than KDE. That is really an acheivement. We can only speculate on what the code is actually doing.
Other nix: Spurious daemons running in the background eating CPU. Why does Apache create so many child threads ?
Now you know!!!
Don't know if this has been mentioned, everybody complaining of lack of speed or interface "spunk" should try a new shell. Windows xp comes with explorer.exe, but you are not bound to using it.
....if you want). Extra functionality by plugins -> essential ones for me are worldtime, weather, a system monitor for drive space, icons, winamp controller, and a pager for the virtual desktops.
I recommend BB4WIN (BlackBox windows port). It has chnaged the way I use my computer, and injects life into my aging amdxp1600. Menus open instantaneously, everything is super fast and minimal. No stupid bitmaps (but you *can have em
All this loaded and my memory use RIGHT NOW is 5324 KB. Compare this with explorer's usual 20+mb.
You won't be disappointed
My computer's getting faster, but I'm getting slower.
-G
www.pixelstatic.com
Good question.
... 8 hours on my 550 Mhz G4 based Powerbook.
In 1992, when I started helping out g77 (GNU Fortran 77) development, I could bootstrap gcc+g77 in about 8 hours on my 25 Mhz 68040 based Nextstation.
Nowadays I bootstrap gcc+java+objectiveC+fortran in about
While I agree that certain aspects of computer performance have remained relatively flat over the past ten years, there has been a huge improvement when manipulating graphics, audio and video.
Compress a 10 minute video to MPEG-1 on a ten year old Mac or PC and then do the same thing on a modern Mac or PC. The difference is huge. Ditto for manipulating graphics and audio.
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.
According to the author, ONLY MACs use the grahpics processor to actually *gasp* process graphics.
This author is a dork, and has very little concept of why systems appear slower than past ones.
Me
They Live, We Sleep
ACDSee 3.0 starts on my computer (P4 1.6, 512, HDD 5400) in 1 second. ACDSee 7 takes more than 6 times that. With other programs it varies, but usually good applications not take more than 1 second (including MS Office ones, even though their faststart or whatever it's called is disabled). Even eMule starts in under 5 seconds and it needs to do a lot of file activity. Some apps are big time offenders, though. Ulead PhotoImpact takes its time, with more than 30 seconds required to start up (at some point it nearly freezes the whole computer and waits for something about 10 seconds).
The CPU utilization is rarely above a few percent. But the real problem is that Windows 2000 doesn't boost the foreground application sufficiently, so if some CPU hungry application decides to eat all it can, the front application can suffer. Sloppy coding can cause problems, though. For example, when Opera gets a few messages, it heavily accesses the disk, apparently doing indexing, but it may slow down other windows.
I would say that most people can enjoy really fast and responsive computing 99.9% of the time, as long as they keep their computer clean from malware and avoid poorly coded applications. No matter how many programs you run on a modern computer, it can stay responsive if you chose these programs wisely.
Future Wiki -- If you don't think about the future, you cannot have one.
Oh, sure. Blame poor Clippy....
that if you scroll down to the bottom of the article, there's a picture of the author. Notice anything fishy about him? Exactly. It's Peter Fonda!
https://www.eff.org/https-everywhere
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?
I don't think there is a direct relationship between bloat and slow-down.
.NET, the software I use most often, for example:
.NET application on a machine. I have a small .NET application that was oppen when I started the various VS.net instances)
Take Visual Studio
VS.net 2002 takes 30+ seconds to load where as VS.net 2003 does it in about 10 seconds. The 2005 beta takes less than 5 seconds...
(These times listed above exclude the extra cost of openning the first
The beta was probably compiled with lots of debugging info in it. I wouldn't be surpized if it was damn near instantanious to load come the final release.
What is it that really happens during that loading? How much pre-processing is really required to present an empty interface? I don't know, but clearly it's either optional or easily optimized. So, *cough* release schedule *cough* why wasn't optimized back in 2002?
http://brandonbloom.name
http://www.gotw.ca/publications/concurrency-ddj.ht m
Talks about the need for more concurrency as we hit the clock cycle wall.
Yeah, either that or they're loading an OSX API compatibility layer into memory with iTunes to keep a common codebase.
A 60MB compatibility layer?
We'll just assume Apple engineers know nothing about audio playback then.
Yeah, it's always easier on the digestion to assume that people are at least somewhat competent. I'll feel much better if I assume that they're clueless about how to decode and play MP3s properly rather than if I assume they need 60MB of code to adapt from one audio API to another (it'll also save me from trying to figure out which APIs they're adapting between, and why they'd do that rather than just writing to the appropriate one directly, or through a thin abstraction layer).
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
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.
Andy givith, Bill taketh...
someone posted a picture of an unattractive female next to his contact information at the bottom of the page.. someone should let him know.
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.
What Moore gives, Gates takes away. While the number of transistors on a chip doubles every 18 months, the amount of processor power needed to run the current version of Windows also seems to double at roughly the same rate. I'm reminded of this every time Windows XP inexplicably decides it needs to redraw every icon on my desktop really slowly for no apparent reason.
Input error. Replace user and press any key to continue.
1. My wife's and my experience with Matlab shows it likes to leak memory. We were both runnin old 5.2 version, so maybe they improved it later.
2. Comparing iTunes with Matlab is a bit broad, isn't it?
"Long run is a misleading guide to current affairs. In the long run we are all dead." (John Maynard Keynes)
Am I the only person who read this as "Where Have all the Cylons Gone?"
The article points out a few places where today's systems apparently have more work to do. But (perhaps in understandable platform-myopia) it doesn't realize that none of these things are that new, nor that CPU-intensive.
Didn't the Next Cube, say, have a slick and fast graphical interface with processors far slower than today's? Maybe with less whizzing and zooming, but those effects aren't fundamentally difficult (if they were, the slow part of loading a new application would be rendering its window on screen, not grinding the disk). Anti-aliased fonts rendered on-demand from outlines, another supposedly CPU-intensive display technique, were quite fast enough on an 8MHz machine back in 1989 (I used them). Real-time checking of misspelled words as you type? Eight-bit machines had this, for goodness' sake.
I suppose that virus scanning does slow down a system, but not by a factor of more than 2x, so it doesn't account for where all the performance has gone.
-- Ed Avis ed@membled.com
My fingers got transposed there and I didn't catch it...
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
Anybody else notice the unintentioned irony of the links. Jargon file references to the second system effect and Fred Brooks followed immediately by IBM ads :)
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".
Well i dont have stuff good enough for a real stock agency.
I also suspect that the "real" stock agencies won't last all that long in the face of shutterstock and istockphoto.
If you don't notice that your computer works faster now than 10 years ago, you must not have a very good computer. I notice a difference when I swap out processors and/or RAM, or even hard-drives, so why don't you? Using a dell?
You ever seen the demos at theproduct.de ...64k games that look like doom3 'n stuff.
Speaking of MATLAB, why is it that it uses like 30MiB when it is closed?
(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.
freshly launched, one empty window open - 1.16M
for reference, vim uses 556K.
Facts do not cease to exist because they are ignored. - Aldous Huxley
It does still add up to quite a big of context-switching. On the x86 arch it's fairly expensive to switch between processes, and even if your actual processes arent' doing a whole lot the chances are that they are polling something that'll need to invoke a switch a few times a second.
"But, in fact, the user experience of performance hasn't improved much over the past 15 years."
Oh, to hell with that. 11 years ago I had a Performa 550 with a 2x CD-ROM, compared to me user experanced performance with my G5 today it's obvious the G5 i much fasster, completes tasks faster and can do more.
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.
99% - "System Idle Process"
01% - other
The only time programmers spent time optimizing their source code to be as fast as possible was on the Amiga - since then its they just use bloatware compilers, and you get what you get.
If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
At MSI, we added OLE so that we could include it on the check list of features. The had me add it, despite my pleas regarding uslessness, bloating, and yes -- security holes. This was in 1995 for windows 3.1 where you could have embeded "format c: /u" into an object and sent it to everyone in the company.
Fight Spammers!
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)
Congratulations on mentioning three stock Slashdot criticisms
Wow, it's like that old "You Bet Your Life" show, where you say the magic word, and the duck comes down and gives you fifty bucks. Except instead of the duck, it's you. And instead of fifty bucks, it's your annoyance. Come to think of it, "You Bet Your Life" was a lot better.
Honestly, what is the obsession with Microsoft Bob and Clippy around here? I don't get it or find it funny.
Well, then, you've come to the right place.
But wouldn't it be neat, if there was some application niche that really was biased toward battery-powered computers? Wouldn't it be neat, if within that realm, software products competed on the basis of energy use? "Your battery lasts twice as long if you use our software, instead of Product X."
Maybe VoIP is one, but I don't see how that will then bleed over and start influencing other software. Hmm.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
OS Bloat, poorly written code and enormous feature sets that are almost completely ignored by all users. That's where all your expensive cycles go.
Trust me; MS Word does not DO word processing better than OpenOffice or Lotus Wordpro. XPs widgets, while cute and soothing do not do anything to rerrange what is a profoundly broken UI.
Where Have All The Cycles Gone?
long time passing?
"goodbye and hello, as always" ~Prince Corwin, from Zelazny's Amber series
A lot (but not all) of this is easily explained by the simple fact that disks and memory are not much faster today than they were in the late 1980s. Time to start a simple text editor, open a 550 byte text file, make a change and close the file, then sync to disk is about the same today as it was in the late 1980s (assuming you had a hard disk). The editor itself (Vim 6 vrs CygnusEd 2) is a LOT bigger today, but the number of IOPS my Seagate Baracuda V can do is only 20% higher than the number of IOPS my Quantum LPS 105MB can do (and that is 1990 era technology). So - latency on my 25MHz Amiga is amost the same as my 500MHz PowerMac G4 Cube - but bandwitdh is vastly better on the PowerMac. Interesingly - with 1.2GB of Ram my Mac can run about the name number of applications simultaneously as my Amiga 3000T can with 18MB or Ram - roughly 14 without swapping. Text editors, terminal windows, word processor, web browser, X11, music player, and picture editor - pretty much the same stuff (though it is MP3 files instead of MODs today, and jpegs/mpegs instead of GIF/ANIM/AIFF files). Basically the only the my Amiga was not doing was PalmOS PDA synchronizing, and the only the the Mac still does not do is fun Paint program like DeluxePaint.
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.
WHY is the Mac OS X slow?
Considering the fact that NEXTSTEP could run on a 33 MHz computer, Mac OS X is abloated beast.
Apple should do something about it.
I know folks say that it has become faster with each release, but that is BESIDE THE POINT.
Why is an OS that used to run pretty much fast on a 33 MHz processor so slow after Apple added some eye-Candy to it.
They should optimize is SOOO MUCH that it is able to run (almost) as fast in a 33 MHz/64MHz computer.
Top on Linux:
6282 bubba 15 0 62792 7380 5048 S 1.4 6:20 0.3 xmms --sm-client-id 11
XMMS uses 62MB of virtual memory to play a small MP3.
Interestingly, Windows seems to be the only platform in which security comes at a substantial performance cost.
While the other things he talks of, like anti-aliased fonts and drop shadows apply equally well to all platforms, Windows is the only platform in which system security requires a substantial amount of CPU cycles and bus bandwidth. Had Microsoft the foresight to design a secure OS in the first place, Macs might actually have to run faster than 1 GHz to compete with 3 GHz Windows desktops.
The society for a thought-free internet welcomes you.
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.
My take on all this is that programmers realize there's just so much sloth the typical user is going to stand for. When their application reaches that point, they baulk and start optimizing or stop adding features, due to "performance concerns". So on the average, system responsiveness will probably continue to remain a constant. Not because of technlogy races in careful balance, but rather that the user's tolerance is a constant factor and the developers cater to that tolerance level.
That being said, until the average user becomes less patient, we won't see more responsive systems.
I work for the Department of Redundancy Department.
10% for Windows
10% for User Applications
80% for spy ware and ad ware
So, let's do a little rough math: 1984: My 8MHz 128K Mac took about 22 seconds to start up MacWrite. From a 400K floppy with a 20KB/Sec transfer rate.. 2004: My 2300MHz 512MB Duron takes 7 seconds to start up MS Word. From a 40GB disk with a 20MB/sec xfer rate. Clock rate: 300x Memory: 4000x Disk: 10,000x size and 1000x speed. App: Starts up 3x faster, responds slower. So at a rough estimate, simple word processing hasnt gotten noticeably better even as the hardware got mighty whizzier than before.
well not really... any (well most) MP3/audio player will have a buffer that is Xseconds of uncompressed audio, and the player will uncompress the file and write to the buffer and the buffer will be played.
for winamp i have the buffer set to 4seconds and the total ram useage with winamp playing anything is 15megs.
The real difference is that Win3.1 was written by people with a very frugal mindset. More recent offerings are written by people who care little about speed and efficiency.
You can have a very efficient wizzy, safe system. An Amiga running RISCOS on a 200MHz CPU is far slicker than Win XP running on a 2GHz CPU.
Engineering is the art of compromise.
Please!! I don't agree with the article at all! You don't have to install bloatware!! Even with bloatware, our computer power has VASTLY INCREASED. I, for one, would not like to go back to older hardware/software for any reason. Like some of the other posters, I remember the old days of reconfiguring startup files and rebooting. FORGET that crap!! I cannot help but be impressed at the computational power at our fingertips. I just passed 10000 wu's of SETI yesterday!! WOOWEE!
'Graphical displays
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.'
I've written a RTF editor graphics and all, in vb 3 (interpreted!) that ran fine on a 486, the problem now adays is that people don't write optimised algorythems any more. (just try loading 100 largish jpegs up in firefox and watch it choke, because it load the whole fucking lot into ram and doest just keep the image sizes and use caching for the ones not on display.
Clipping, visible regions bounding boxes and other matrix are all easy to cache with a low memory and cpu overhead (typically the boost performance).
If Doom3 or Halflife can cope with hundreds of megs of data using similar partitioning techniques why should the rest of the UI world.
'Word processing'
'These days, it's the automatic features on these programs that can slow down your system.'
Use threads that run at a lower priority than the rest of the work for all this auto shit, that way they wont slow the rest of the world down, and wont take out the word processor when they fuck up.
Also, if they made the checkes more intelegent (e.g. they checked you common errors first) then they would have much better accuracy and much lower overhead.
'Program complexity
Program complexity is probably the biggest culprit when your supposedly speedy processor still runs slow.'
As I've said above, more complexity can speed things up a hell of a lot (think quick sort vs bubble sort), it's the wrong type of complexity : poor modularity, poor encapsulation, running everything in the same process Program complexity
Program complexity is probably the biggest culprit when your supposedly speedy processor still runs slow; that's slowing things down.
Try running windows 3.1 on a modern pc (you may have to take out some of the ram as it's got a problem with large ammouts of memory) then tell me again that windows is slow?
thank God the internet isn't a human right.
So the speed of software is not set by the speed of computers. Rather it is set by what programmers will tolerate.
The level of programmer toleration for slow software has not changed over the years. For software to get faster, programmer's attitudes need to change. They need to become intolerant of slow software. (in many cases, it's the managers, not the programmers who are tolerant of slow software).
When I had a ZX Spectrum + with all of 48 Kb RAM and wrote a program that ran to slow, I had to go back and re-optimise the code. Nowadays, I buy faster hardware.
Sigh, nostalgia.
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.
On Joe Sixpack's system the cpu is doing everything BUT what the user is REALLY wanting....
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.
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."
Are you sure that they wrote "clocks"? Isn't there a letter too much?
__
Men with no respect for life must never be allowed to control the ultimate instruments of death.
GW Bu
500 repsonses and no one has mentioned the .NET platform yet? In Longhorn, we'll enjoy UIs that run in only on 3D accelerated hardware, and described in XML, so there goes tomorrow's cycles too.
I'm thinking that manufacturers would actually love to sell 10K RPM drives to everybody, if they didn't have to deal with the risk of people using them in underventilated cases.
One solution to underventilated cases is to make a separate case. So where can I buy a good external 10K RPM drive with a USB2 or FireWire connection and decent ventilation? Which brands do you all recommend?
Your friend was asked to stop because he was wasting your employer's money.
:-)
I agree that in some cases it would be nice if commercial software to be installed on thousands/millions of machines did not suck so much, but: If we are talking about an in-house app to run on, say, 4 servers, and my choice is add $50 worth of slightly faster CPU + tiny bit more RAM to each ($200 total), OR, spend an extra 2 days randomizing^H^H^H^H^H^H^Hoptomizing the code (12 hours * $40 / hr loaded cost = $480), the hardcore method just cost me an extra $280, NOT COUNTING the extra maintenance costs I may incur should I ever have to update the resulting speed-o-spaghetti.
Of course, if we're talking 10 minutes work to avoid an extra $200 worth of hardware, then be my guest
Yow! I'm supposed to have a plan?
Please, do look at my username: what you speak of was largely only true for the PC. Multitasking, graphics, and plug-n-play (aka AutoConfig) did exist elsewhere. Admittedly, the lack of memory protection on amigaOS did cause some problems, but the system booted fast, so it wasn't a big deal.
dd if=/dev/zero of=`df / | awk '/^\/dev/ {print $1}' | sed 's/s[0-9][a-z]//'` count=1 bs=512 && shutdown -r now
Most of the time my processors sit there doing nothing...that's why it's important for me to measure their performance in Bogomips...
I need to know how soon their going to be done doing nothing for me...
Everything I need to know about copyrights I learned from Slashdot.
XMMS uses 62MB of virtual memory to play a small MP3.
And it's actual foot print is 5M. The 60M is probably mmaped libraries and the mp3 file.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
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).
Why should I have to know what order to declare my variables in to get the best performance? That's the compiler's job.
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
Apple does it because it makes successive OS releases easier to swallow. There's very little reason not to upgrade to 10.2, 10.3, or whatever, if your computer gets faster with every one. Could you imagine how poorly they would have done if they'd each gotten slower on the same hardware? So I think part of it is improvement on some shitty-ass early releases, but a great deal is probably Apple just playing it close to the vest.
I use between 7 and 8 MB of memory in Winamp according to Task Manager.
Now we know why Windows is so slow, but why are modern distro's so slow?
Peter Seebach has been using computers for years and is gradually becoming acclimated. He still doesn't know why mice need to be cleaned so often, though.
Is he talking about the rollers around the ball? But aren't most mice optical these days?
I've rarely cleaned a mouse since optical mice came out about six years ago, and only then on an antique machine. I suppose I have always built my own machines and tend to choose quality input devices instead of the el-cheapo ones the shop ones supply.
Grumbling about lost CPU cycles is strange when he could save some time by simply upgrading the mouse.
Consider this...
I have a Kaypro II dual diskette computer. This machine sports a 1 or 2mhz processor and a single side single density floppy.
When you turn the computer on... it takes 15 seconds and you are ready to type in WordStar. 15 seconds from the time you turn the computer on and you are ready to type.
Another machine... a 200 mhz laptop with WIN 98...
Still loads up and is ready to run applications faster than my 2Ghz plus machine that runs Win XP...
BLOAT BLOAT BLOAT
Features and funstions that are never used etc...
Sign me programmer for 35 years...
by trying one of the bootable live linux cds that are designed to boot from a 185MB mini-cd. They're a bit strange, but they naturally place a very high premium on space, and thus tend to choose simple, rudimentary capabilities.
Three that stick out that I've tried recently: DSL (Damn Small Linux), Puppy Linux, and SLAX.
Overall, I like SLAX, a Slack based distro best. It uses the KDE office components, so it doesn't give you that retro feeling. It feels the most normal.
Puppy Linux is a close second, and it definitely is designed for speed and simplicity. It's well worth a try to experience non-bloated computing. Puppy is small enough that it loads into a ramdisk, leaving your cd drive free for playing CDs.
DSL is probably the fastest, leanest and meanest of the three. It would appeal to many in the Slashdot crowd, in that it throws out evey consideration other than size and speed in choosing applications. In many ways this makes it interesting to play with, because while it is quite functional, it is bizarre. It is also bleeding-eyeball ugly, whereas Slax and Puppy could give Mandrake a run for its money in the elegance department.
I've been disappointed in gettting these things to run from a USB stick though. USB storage booting is very inconsitent from device to device, so I've found it best to stick with a mini-CD / USB keychain combo, although I really want to dispense with the CD.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
If you declare an int before a double, you end up with 4 bytes (usually, on a 32-bit system) of unused memory/space between the two, because an int is a 4-byte value which starts on a word boundary, where a double is an 8-byte value which starts on a double word boundary. The compiler is not written to reorganize your code, unless, assuming you have an extremely good one, you turn on the optimizer. Some optimizers don't do the job right. Why chance it?
OCO is Loco
Sure we do - I always do my final C++ compile with the -O flag
I loved that OS. Perfect scaled fonts on my 24-pin printer, ran far faster than Windows 3.1 and took up less space, too. If only they'd gotten the SDK out on time, we might be complaining about a different dominant OS today.
- Renderer for scalable PostScript (Type 1) fonts
- Renderer for scalable TrueType fonts
- PDF file viewer or import filter
- PostScript file viewer or import filter
- Flash file viewer/filter
- SVG file viewer/filter
- Viewer/filter for a vector graphics format such as CGM or WMF
And yet, most of us use different, stand-alone apps for each of these functions (t1lib, FreeType, xpdf, GhostScript/GhostView, etc.); each written by a different person or group of people, each with their own 2D graphics engine, each with their own set of shared libraries or DLLs.I suppose some über-hacker could write an entire desktop application suite himself, achieving a level of code reuse that no multi-person team could, but that's not very likely...and desktop software will thus remain bloated.
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.
Will XP even install on a 500MHz system?
Yes. I've currently got it on two 433MHz systems, with either 256MB or 384MB RAM. It's not fast, but it's not tragically slow, either; about like Windows for Workgroups ran on a 386. And as much as I loathe WIndows, I must say XP's amazingly stable. One of those two old systems now handles the backups for our entire corporate network, because it never, ever crashes.
I figure by 2030 or so my 6-digit UID will be something to brag about.
Would have liked a "Save small" option for all the files which were being emailed back in the day of a 5Meg or smaller email quota.
I still hate it when people email me a MS doc when plain text would have done fine.
Lyx rocks, and it just keeps getting better. I use it for most of my word processing (emacs gets some, kontact gets my email stuff).
From the article:
"Luckily, the worst is probably over. Around the time when 800-Mhz processors came out, users stopped the driving need to upgrade constantly. Most users today can complete their work without waiting hours for the computer to perform its tasks."
What's his basis for this? I see no improvement on the horizon at all, unless that new Cell processor is the cure. When I first looked at the PC I was disappointed in how many mundane tasks the CPU had to perform. Checking the keyboard for new input? Working around memory refresh cycles? Trying to stay ahead of the TWO character "buffer" that most modems had? It seemed to me that the early designers of the PC went out of their way to avoid offloading work to specialized devices.
We currently have handwriting recognition and will no doubt encourage more speech recognition interfaces in the future and what you want to bet that they don't implement these things totally in an external device of some sort (as they easily could). From a task management, and ordinary computing point of view, today's PCs don't do anything that couldn't be done with the room-filling mainframes from the 70's... you know, the ones that had a maximum memory capacity of 16-Meg. Those systems in fact supported hundreds or thousands of users, often running batch processes in the background and not going down for months at a time.
It is in fact an embarrassment that a PC of today can't at least support a small department of users, and in fact they could, if all the I/O activities were isolated from the CPU and memory used for user-land applications.
I really think our dependance on a duopoly "monoculture" has held back much innovation. Hopefully that will soon change, and hopefully the US will play a major role and not just stand still slack-jawed wondering why we didn't think of it before the emerging technology superpowers.
when he invented the segway.
-ubuntu others as you would have others ubuntu you.
Main Memory or the access of the hard drive hasn't increased in years. You may get more cycle a second but there just cycle wasted when accessing main memory.
asembly trick is to store as much as possible in the register or internal chip memory. It take 10 time longer to access main memory then a register.
three thing limit rapid access of memory.
1) for a wire to work it must create a magnetic field. it takes time to build this magnetic feild.
2) for the wire to work it must warm up. it takes time to warm the wire up.
3) the previous 2 cause a voltage drop causing it to take time to build up enough charge to be read.
Sorry guys and gals there's one main reason for compos being slower than they should be: the overhead required by more and more levels of abstraction. These extra levels bring me close to tiers(sic) because they are for the *programmer's* convenience not the user's.
The frankly stunning levels of indirection that the computer is required to travel to achieve even the simplest of task slows everything down to a crawl.
The C programming language is responsible for a at least one level of abstraction (disassembly demonstrates huge numbers of function calls which are unnecessary for the program to work but are there for the programmer's benefit (think: modularization; portability and reuse (none of which directly improve the user's lot but are there to help the programmer and *come at a price*))).
OOP adds in a further level and encorages programmers to ignore how things are actually achieved by the machine. In the worst case this all becomes like a plumber working with nothing but bath tubs when there's a shit load of plain and simple pipe sitting in his van.
The idea that algorithm wins over optimization actually seems to me to be an argument for using a higher level language than C or C++ (however this is rarely the context in which you read it). If algorithm really were king we should all program in LISP. In the end, as with all sweeping statements, the truth is that there is a complex and dynamic boundary here, in this case between our use of abstraction and our desire to optimize for the target machine, (utility for programmers and utility for users). Choosing where to set these boundaries requires intelligence and that requires revision where necessary.
The fact that people (users) are wondering where their cycles have gone to suggests to me that the boundary has been pushed way too far in one direction: make it easy for us (the programmers) and fuck the users - they can just buy faster machines. Even speaking in commercial (rather than professional or dare I say it, moral) terms this practice seems insecure: if there is a way of doing exactly what your program does but faster it leaves you open to attack. We can debate the size of this chink in our armour but we can't debate the fact that it is there: you do not get the benefits of abstraction without paying for it in terms of optimization.
Two things that piss me off about my work machine: when it's slow for no very good reason and when the software it's running breaks. Ironically, a better understanding of how high level languages are translated into machine code would help sort both problems, we might even be able to trim away some of the fat at the same time. We are not moving towards this future. We are moving away from it. Fast. Never mind... let's pull into that drive thru and fill up on more crap.
"Supersize me!".
A good meal takes awhile to make, and so does good code. Many customers, most in fact, are demanding a product as fast as they can get it. Many settle for fast food, and even those getting large products (full meals) often end up with scorched or undercooked offerings because they can't wait...
And it's not that they always have the option. Sometimes they have to go "fast food" because they themselves are on a timeline, and just can't spare the time to wait on a solution they need now.
For others it's just the current mentality now. I'm a programmer. I used to be able to do wonders when I had more time to code. Now even when I have some time there are too many interruptions. If I had time to study up I could refine my technique/abilities and put my dreams into code. The problem is that by the time I did, my dream would be obsolete in the minds of consumers. Today's flashy graphics supertitles are tomorrow's bargain bin items. Of course, some of us (such as myself) rummage the bargain bind and find some real gems... despite being not of the flashiest graphics, but most ignore them entirely.
Fast food. The acceleration of technology means that you can't take time to truely streamline lest you be left behind. Enjoy your undercooked burgers... we earned them.
It may not be a perfect analogy, but cars today are not capable of speeds they were not capable of 20 years ago...In addition, isn't the true test of "speed" for most users is how long it takes to accomplish the task at hand..ie produce a pretty spreadsheet?
Unison is OK, but I don't find it nearly as fast to operate as traditional newsreaders.
It is better than any other GUI newsreader I've seen though.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
"in fact, the user experience of performance hasn't improved much over the past 15 years"
... my 'moonlander' game is just as boring and simplistic on my 3800mhz P4 as it was on my old 12mhz 386.
It's true!
hmm I wonder if this crazy com-pooo-ter has other uses? Maybe its advanced enough to play Pong now! I have to admit that after so many years of using it for nothing but moonlander, I am a little bored.
I bet its terrorists! I bet they stole my other 3788mhz!
George Bush + Linux = "I will not let information get in the way of the fight against Windows"
This isn't about Audio API's - it's the whole app framework. WinCarbon some call it
Apologies, I missed somewhere along the line that we were talking about iTunes on Windows. I can certainly see why there'd be a significant compatibility layer required.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
iTunes is probably using some type off callback mechanism to stream the MP3 compression like most players but is KEEPING the decompressed RAM in memory.
Why? Probably so that if you the user were to move the song back it could "on the fly" shift back without having to re-engage the decompression algorithm.
Thats smart. My guess is that if you had a HUGE MP3 there would be some limit to how big this buffer would get. But it still must be streaming....
GSG
Postscript is my relaxation language of choice. You can draw some amazing things in raw, handcoded postscript. If you haven't tried it, you don't know what you're missing. Get a copy of ghostview, grab the r/g/b books (or the modern all-in-one brick) and start hacking!
A few ideas to get you started:
--MarkusQ
Obviously, the cycles have absconded with the socks that go missing from the wash.
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!
The *new* new openoffice seems to at least be breaking things down to be somewhat more modular. The old openoffice (1.x) tends to want to load the entire office suite into ram, not just the entire program you want.
I can, and do, tweak my box to not load too many extra components. Someday I might feel like answering this challenge:
"Where do I want to go today? I want to go play Quake 3. And I don't care if your name is Bill Gates or Steve Jobs, I want to do it in five seconds or less. But if your name is Linus Tourvalds, you can have ten. I like penguins."
Well, it takes me at least two or three seconds before I get to my bootloader, and one more second after that so I get a chance to change my mind and boot another OS, plus another 2-3 seconds to get to userspace, and at most 5 seconds to launch an nvidia-powered X server, after which Quake 3 can launch, and it gets to its intro screen in about 4 seconds. If I can optimize away the POST and use LILO instead of GRUB, I can just squeak in under 10 seconds.
Surprisingly, my Quakeforge (quake 1) with some retexturing takes ten seconds to load to demo on its own, with the rest of the OS already up. So, the things which haven't been, and can't be optimized out by open alternatives, are mostly actual content.
Don't thank God, thank a doctor!
> Well, that's just shite interface programming. Other apps don't suck 60MB to display a window.
Not necessarily. Write a console application which prints "Hello, world" and waits for a key by "getch()", I'd wager a guess it will consume about 15Mb unminimised, and some kb minimised.
Possible reason: it seems to be an optimisation Windows seems to perform. It increases the working set of an unminimised application in order to make it more performant.
> iTunes is designed to play media files,
No. It was designed create and manage a DB of media-files and synchronise it with a portable media-player, while also providing access to a online-shop. Playing MP3 files is a necessary part of it.
WinAmp 1-2 was designed to play MP3 files.
I admit however, that the comparison with Matlab was a bit exaggerated.
"Between strong and weak, between rich and poor [...], it is freedom which oppresses and the law which sets free"
You forget "and a good knowledge of assembley". Most people don't have that. :-)
;-)
I can't actually recall a situation where resource allocation *has* gone wrong. Whenever something's messed up for me, it's been drivers going screwy.
Text mode is only portable because it doesn't "fit in" in equal proportions for *any* of the GUIs now available. I'd prefer to have a native look GUI for each, thanks.
AbiWord + bzip2 plugin. Files start out as XML (less bloaty than Word, amazingly) and often compress down to less than ASCII, while still being as easy to manipulate as Word. The compression is done by the word processor, so it's not fair to compare to putting a .doc in a RAR.
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.
Let's say there's a theoretical fastest speed at which you can do something. At 100% of that speed, you sacrifice all of the things you mentioned, because you're hand-coding in assembly according to a mathematical proof. At 90% of that speed, it's doubtful that you've run into any of those problems, if you're doing it right.
Most software that people are complaining about runs at more like 10% of the theoretical fastest speed, meaning that people are buying 2 and 3 ghz processors for a job which could be done by the 200 mhz eMachine (Linux router) sitting at my feet.
The same holds true, generally, for disk space, RAM usage, and so on.
The only thing you can't really optimize is media content. Games and movies will be bumping up against the limitations of the system for some time now, until we get to where we are with music: with lossy compression, the casual user doesn't need too much space or notice the quality loss.
Games are approaching that. Half-Life 2 fits in just under a gig, and for the most part doesn't look all that much better than what a PS2 can do. Within the next five years, graphics hardware should stop mattering so much.
With movies, we've got a way to go -- I still can't hold as big a movie collection as I'd like if I'm using DVD rips, and high-def should increase disk usage about tenfold. We're going to see some BIG hard drives, people.
Don't thank God, thank a doctor!
Halo PC is horribly optimized compared to Halo XboX or Doom 3 PC or... take your pick.
Don't thank God, thank a doctor!
So an app with a large "working set" that is mostly inactive is efficient how? Well, more efficient than a large "working set" that is msotly active, sure.
But when it starts, it could easily force other programs out to swap, which will come back later once the system figures out what's going on -- just as the inactive working set is swapped out. And even assuming no other programs and a blazingly fast start time, having a swapfile filling up my disk is not efficient.
Actually, I don't have a problem with the content of your post, only what it seams to be strongly suggesting, especially given that it's rated Insightful and not Informative.
Don't thank God, thank a doctor!
Should use 0 cycles until they are needed, in which case it's not "background" anymore.
Don't thank God, thank a doctor!
The problems that exist in the init_t domain, and named runs in a computer.
When I was in college about 6 years ago, I got a 386 laptop off ebay to do classwork (total cost: $100). It came with Windows 3.11 and some of the programs that now come in the Office suite: Word 2.0, Excel 2.0, and some other program which I can't even remember the name of.
They did their job, and they did it well. I was even able to put together some macros for my calculus classes (although they were cumbersome and I just went back to paper after that). But the thing that was most important was using Excel for physics experiments. Plug in your equations before the experiment, copy them into the fields you need, and bam, you have plenty of time to take as much data as you like instead of madly working at it with a calculator. At the end of the experiment, you already had a graph of the data, ready to hand in.
And that was all the functionality I ever needed. Personally I can see no reason at all to upgrade to anything more recent for all my word processing and spreadsheet needs... except that the file formats have changed and reading other people's documents would be impossible.
I think that most people would agree, that most everything that most everyone ever needed in these programs were already there ten years ago. But that would mean that Microsoft wouldn't have a revenue stream...
"No problem. I have the capacity to do infinite work so long as you don't mind that my quality approaches zero."-Dilbert
I do vaugely recall, sometimes, yes, using WinAmp and it slightly skips when updating a file's ID tag . . . but only with Winamp 2.x, and then with the derived version 5.x's. With Winamp3, though, I've never noticed a single skip. Even with the ultra-slow Wasabi.player, that aspect seems fine.
To be honest, I would say that it's a very, very small percentage of people that are won over by tiny things like the different ways of using ID3 tags in iTunes or so forth, even if we accept those points (and they are somewhat questionable; how much iTunes falls under an "ease of use" description depends wildly on the person using it, some people (myself included, but don't hold that against me, fanboys out there) don't find iTunes all that, shall we say, unproblematic to use). People use it because it's a widely known alternative, and marketed (yes, even though it's free, don't deny that it's marketed) especially towards the less knowledgeable users . . . I know one person who uses it essentially because it happened to come with her computer. That's it. For some odd reason, Windows Media Player didn't, though she expressed her preference of that over what she has, she just doesn't know what else to use (which has me writhing in agony, let me tell you, since I'm not exactly a fan of the new versions of WMP either, it's the proverbial rock and a hard place).
My point is: iTunes is not successful because of any small little innovations that people might notice. It's because it's easily used by (and also relatively well known by, mainly due to the iPod) the kinds of users that would never spend their time noticing those small things and then sitting down thinking about them. So even if we concede iTunes any innovations, it's not those innovations that are propping it up so high nowadays.
I remember sigs. Oh, a simpler time!
puh-lease!
Organising your variables on machine boundaries.. in my compiler (the microsoft one!) you'll see that all variables are padded out to machine boundaries anyway, so ordering your variables by type is just a waste of your time. Spend it more profitably. (this is one reason people look at programs now and say 'what bloat!' its mostly wasted space, just like using utf-16 will 'bloat' your program size up)
Compilers now optimise your low-level code way more efficiently that you can ever do it, so instead try to make your program look neat, clean and ordered so that maintenance isn't a complete nightmare (and all for a few microsoeconds performance improvement!).
What your friend is probably doing, in amongst all this wasted micro-optimisation, is refactoring the entire program. An example: login times with the product I code for used to take 8 minutes, until someone realised the login sequence would read a list of units from the DB, and then.. for each unit, read a set of property data from the DB. Putting the looped sub-query inside the main one..dropped login time to 2 minutes.
Those are the optimisations you need to worry about, the odd byte alignment - forget it. The compiler is probably re-ordering them for you anyway to help with cache coherency.
I was kinda expecting some profiles and exicution graphs from major OS's/environments. KDE is one of the worst offenders known to man here, Windows is a sain't in comparision. I tried to run the latest Knoppix on a 333Mhz PC the other day (from harddrive!) and KDE was absolutely un-usable. you can't even load a file manager in under 20 seconds, yet Windows runs fine. Im guessing allot of speed has gone to new age programming ideas - not that thats a bad thing, windows API for example is something no-one should be punished with using. KDE just takes the piss tho, they say its linking, even on a 2GHz machine it starts eating resources.
This comment does not represent the views or opinions of the user.
The LaTeX Companion, if you decide to use LaTeX. It is probably the most complete guide. There is also a bunch of introductory books, I don't remember any titles of the top of my head. Look at www.tug.org (TeX user group), they have good list of resources.
You may also want to look at ConTeXt, I am not sure if ConTeXt manuals are available in print, but you can download pdf files from www.pragma-ade.com (warning, some of the pdf files are huuuuge).
AccountKiller
The entire size of my teTeX installation is 83M. 41M of that is fonts, but if one were to use only the cm fonts, it would be a lot smaller. And a lot of what remains is stylesheets and packages which I never, ever use.
It could be a lot smaller, but it's easier just to put the whole kaboodle in the install, since space is so cheap. Which, really, is the point of this whole article...
--grendel drago
Laws do not persuade just because they threaten. --Seneca
I'm still on an 386 you insensitive clod!
How exactly do you prepose to handle typedefed types? In theory their size and alignment are totally opaque to you, and given that their typedefed may even change at some point in the future even if you went to the trouble of looking up the definition for each type.
.data section for proper allignment, you might want to consider a better compiler. While this might not be an option for some embedded work, you really shouldn't be doing this sort of "optimisation" yourself.
If the compiler can't reorder allocation and the entries in your
it's quite possible to install MS-DOS 6.x + Windows 3.11 on a x86-compatible machine and avoid all the 'bloat'. So do that and STFU. Please.
I agree, micro-optimization is generally quite pointless without modern optimizing compilers. The big speed hits usually come from bad data access, like needless copying, or inefficient sql queries.
Example of bad copying: parsing a string by searching for boundary characters and passing copies of the segments between those boundary characters to other procedures, instead of simply iterating a pointer over a character array and just copying that data from it that you really need.
Example of bad SQL access: doing a join across two tables on a key, then doing a select of data from the first table limited on that join, when you only needed a few rows from the second table. Much faster: using IN with a subselect to only compare against those key rows you needed.
The order of development goes a bit like this:
- make it work
- make it right
- make it fast: first macro-optimization, and then micro-optimization.
Doing microptimization too early wastes developer time, makes the code harder to read, and in the end costs money.
Is that mem usage (paged in memory) or VM size (a more realistic figure of memory usage)?
I just had a look at iTunes memory usage on my G5 (10.3.7) while playing an AAC - 20.08MB, CPU load 1.08%. Not exactly the end of the world, is it? Firefox gobbles up 35MB and 1.2% CPU displaying a static page.
That was classic intercourse!
In other words extra CPU power makes software (development) cheaper.
It's not difficult to figure out the sizes of your data structures.
OCO is Loco
Wrong. You just explained the inefficiency of NOT ordering your variables. You padded things out to (double) word boundaries... you WASTED SPACE. When you're looking to write code for embedded, limited memory systems, you have to do these things. Once you start doing it for one, it's easily carried across to the other platforms.
There are all kinds of little things you can always do along the way to make your code run better. Which is faster: x *= 2 or x << 1? No, it doesn't make a differnece on some programs, but when you start dealing with large volumes of data, small things like choosing the faster of those two can actually start to save you noticeable amounts of time.
And if you call cutting run-time down from 4 hours to 2.5 with about 10 minutes' worth of thinking "wasted micro-optimization," I'll hire him before you any day. He's at a point where he does this automatically.
OCO is Loco
Only on Slashdot: A bitter reply to a a senseless reply to sarcastic humor gets modded "insightful"...
;D
I have a few external Maxtors, both 7200RPM and 5400RPM, and they seem to have comparable performance to each other but are both slower than an internal 5400RPM drive (also a Maxtor, identical with the external 5400RPM). Firewire (400) is the performance bottleneck here, not the drive; I don't know if there is that much of a point to even a 7200RPM external. (Might be a different story with Firewire 800, I don't know.)
On the cooling side, they seem to do this very well - they are fanless, but have aluminium casings that work in effect like a big heat sink.
well, my experience is with massively scalable systems - the kind that run tens of thousands of users, and not embedded 5Mhz processors. I can understand where you're coming from in that case with limited resource programming, but that is a specialised area of expertise.
In general programming, the techniques you're describing are poor, and for large scale systems, doubly so. In those systems the cost of using bitshift for multiplication is not worth the effort to optimise and the problems in maintenance - instead I'd be figuring out how to get that data to manipulate quicker as that's where 99% of the time is spent, compared to the 1% actually processing it.
I'm sure mathematical algorith programmers have different optimisations to the ones you've described too, eg. smaller data cache lines are the best way to increase speed, and not bitshift optimisation. So to think that he's the be-all and end-all of program optimisation is completely wrong. I wouldn't hire him for my type of work any day.
1) Get real. Nobody in their right mind is going to write a word processor in assembler. Besides, what do you mean by a "good macro assembler"...? Something which can lend syntactic support for things like structs, objects, etc.? If you do, then you're basically talking about C anyway. Except you can't just retarget assembler and hope it will run efficiently/at all... so now each architecture has to have its own implementation disjoint from all the others.
Even if you only have one architecture, each programmer still has to dedicate a lot of time becoming as proficient at assembly as your run-of-the-mill C compiler is today.
2) Yeah, so let's make it much harder to get something to work in 99% of all cases just to make it easier to get it to work in 1% of the cases where something goes wrong. (Percentages made up as always, but I'm probably being generous).
3) More portable? In which way? I'll bet you a beer that Tk runs on more platforms than any other text-based UI framework you can think of. (And don't say 'ncurses'... that's much lower level and doesn't implement even a tenth of the functionality).
In short: You're wrong.
HAND.
BTW, multiplication is part of data manipulation. It's simply one facet of it.
And the answer to the question I posed is, "It depends on the architecture." On some machines, it will be faster to use a multiplication operation, while on others it will be faster to do a bit shift, though generally bit shift wins out. But that's only one thing. I've cut run times down on database programs just by rewriting the queries and making some minor changes to the programs to accomodate the new queries. I didn't hear anybody complain when 3 hours of run time went down to 20 minutes.
The only complaints he gets are from a very specific person at his shop who seems to have contempt for anyone without a CS degree and isn't a MicroZombie. My friend only needs to defend his dissertation in applied mathematics. Is he the be-all and end-all? No. Is he thinking about making things run better? Yes. Is he making them run better? Yes. He gets his work done by the deadlines and gets them working properly. He gets lots of compliments from other co-workers who end up having to maintain/upgrade his code. He is able to get things to work that others can't.
There are some things that translate well across all types of systems. There are others that can take a back seat while working on one type of system. If your stuff is distributed across several thousand machines, a lot of optimization techniques won't be noticed. If it's all centralized (single data server, etc), you'd be surprised how your response times can be improved by doing the little things, including better planning.
OCO is Loco
That's interesting. Care to elaborate? Peter
Enough said ;)
XML, Java, SQL, J2EE, JSP, etc. Take something that could have run on a C64 with a TCP stack, and make it require 1/2 gig of ram and run slower than 6502 assembly would have.
(1) Yeah, I did. That's an important part, too, but it isn't only important for ASM/MASM programmers. A fair number of problems happen in other languages because of a lack of familiarity on the part of those writing the code. See: Buffer Overflows.
;-)
:-)
(2) I agree. While I would have argued for jumpers and such in the early days of PnP hardware, I'm not sure I would (seriously) today. I'm just playing Devil's Advocate on this one, but don't tell anyone...
(3) GUIs are pretty, no doubt about that, and for a number of things (say, creating flowcharts or something) a GUI is probably the best bet. So why do I find myself doing so much text processing in a fullscreen console these days?
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
I think (3) probably pays better, because everyone wants to use GUIs and they're easier to get to grips with - this leads to a greater supply and thus less demand for users of them. ;-)
Try to run "texexec" from command line to see if you have context installed. It comes with most modern TeX distributions. Or look at www.pragma-ade.com for info and download.
It is a TeX format similar in a way to LaTeX, but targeted less to the technical/math/science crowd and more towards general purpose and professional publishers. It is much easier to use various fonts, colors and graphics and do all sorts of fancy stuff.
I must addmitt to trolling a little (as you probably suspect), because
1) context will benefit from better cpu and more memory quite a bit, it uses perl, and integrate metapost and other things, so I am not sure it would even run on an old dos box. But I don't see why wouldn't it run on a 10 years old linux box.
2) Yes, there is whole bunch of stuf that is easier to do in a wysiwyg environment. On the other hand, you can do things easily with context that would take a lot of work in word.
AccountKiller
Bottom line: most project managers do not even bother to schedule performance test, even less performance improvment activities.
[Pruneau
And the answer to the question I posed is, "It depends on the architecture."
Not really. It only depends on architecture, when you are using assembler. Else, "It depends on your compiler." Ignoring for a moment that you seemingly compared apples with oranges (x *= 2 does something different than x 1, assuming we are talking C syntax here), then, you should assume that your compilier is doing such basic optimazation for you. (gcc, for example does).
Then, if you learn through profiling that you have a problem there, and it isn't a problem with the algorithm, but you really need to start counting cycles, you'd go and write that part in assembler to begin with. No second-guessing your compiler anymore.
While being able to optimize stuff is important, and some optimizations always make sense, ordering your variables (what has brought up this), is utterly useless, if you don't *already know* you need it in the case at hand. Yes, it may matter on some embedded systems (but I was fine without), but when you are not, I'll take better readability anytime.
Keep an eye on which arguments are silently dropped in replies. Not always, but often times it's very telling.
Full UNIX on a 486. real-time PostScript.
Well, that's just shite interface programming. Other apps don't suck 60MB to display a window.
Try having the AIM buddy list window open, and then closing it. See how much memory is saved!
VM size is not a realistic figure of memory usage you idiot. It is a realistic figure of address space usage which can have anywhere between about 0.01 and 100% correlation with memory usage.
It's also the figure equivalent to the figure that was quoted in the grandparent article that he was comparing it to (from the 'VIRT' column of the output of top(1)), so would be the best figure to use for that purpose.
http://www.ubersoft.net/d/20030417.html
Me: What is that?
Dom: Windows 2-thousand (not 2000, but 2-thousand)
Me: Oh, I use 95, can't be doing with that 98 crap
Dom: pah, mmm what is that, an animated drum?
Me: uuuh, yeah great
Dom: I DON'T WANT MY CPU CYCLES WASTED ON AN ANIMATED DRUM!!!
Hhahahah I still momentarily loose bladder control thinking about his antics.
Seriously, programs do some effects in thier startup splash screens that we used to (on a P2) wait for a progress bar to complete, so don't worry about CPU cycles. If you do, run black box or twm or just use a console with 0 buffer and tiny bitmap fonts, and just use cat and echo (with >> > | ) for all your word processing/editing
Also play nethack the reduced character set version.
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
#for the slashdotteresses#
Where have all the cycles gone
And where are all the mod-points?
Where's the Slashdot Hermes
To fight the rising trolls?
Isn't there a #gentoo @op upon a OC12?
Late at night I toss myself off and I dream of what I need...
I need a distro!
I'm holding out for a distro 'til the end of the night
It's gotta be pwnd
And it's gotta be linux
And it's gotta be able to play HalfLife2
I need a distro!
I'm holding out for a distro 'til the morning light
It's gotta be l33t
And it's gotta be k3wl
And it's gotta be able to play HalfLife2
Somewhere after midtown madness
In my wildest WoW
Somewhere just beyond my sub-net
There's something pinging back to me...
Racing on the penguin and rising with FireFox
It's gonna take SCO to sweep me off my feet!
I need a distro!
I'm holding out for a distro 'til the end of the night
It's gotta be beowulf'd
And it's gotta be themed
And it's gotta be able to play HalfLife2
I need a distro!
I'm holding out for a distro 'til the morning light
It's gotta be r00t
And it's gotta be secure
And it's gotta be able to play HalfLife2!!!!
Up where the mountains meet the heavens above
Out where the lightning splits the sea
I would swear that there's someone somewhere
Watching me
Through the wind and the chill and the rain
And the storm and the flood
I can feel his approach
Like a fire in my blood
I need Linus!
I'm holding out for Torvalds 'til the end of the night
He's sure is strong
And he's gotta be fast
And he's looks ready to fight
I need Darl McBride!
I'm holding out for Darl McBride 'til the morning light
He's gotta be gay
And he's gonna be out of a job soon
And he's gotta even annoy his wife
I need a distro!
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com