Slashdot Mirror


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."

157 of 854 comments (clear)

  1. My CPU Usage by fembots · · Score: 5, Funny

    2% word processing
    3% gaming
    5% internet
    90% feet warming

    1. Re:My CPU Usage by BeyondALL · · Score: 5, Funny

      that's why I run Seti@Home in the winter :)

      --
      "If you keep an open mind people will throw a lot of garbage in it."
    2. Re:My CPU Usage by Budha_man_99 · · Score: 2, Funny

      You must have a HPUX system.

      --
      Why do we correct our criminals but punish our children?
    3. Re:My CPU Usage by aussie_a · · Score: 2, Funny

      Us Firefox users have to have something to waste it on.

  2. Code Bloat by RatBastard · · Score: 2, Insightful

    Simple. Code bloat.

    --
    Boobies never hurt anyone. - Sherry Glaser.
    1. Re:Code Bloat by pilkul · · Score: 3, Insightful

      Or in other words, developers spending less time on petty optimization to work on features and bugfixes.

    2. Re:Code Bloat by Anonymous Coward · · Score: 3, Informative

      Bloat, you say?
      Man, that word sure is thrown around a lot.
      My feeling is that the people who call
      a lot of stuff bloat are the same ones
      who view managers are useless loudmouths.

      Truly time-critical code is executing faster than
      ever. Compilers are smarter, hardware is faster,
      and development systems are cleaner.

      Programs are more featureful, intuitive, and pleasant-looking than ever. (I know, very general.)

      Then again, if you are simply one of those minimalists who thinks that everything had every feature it needed somewhere around 1993, then
      that is different. Pretty much all of that
      code still exists, and I'm sure you're happy
      to use it. I, however, would rather have
      a system that is easy on the eyes, intuitive,
      and helpful and wait an extra milisecond or so
      than feel content knowing my processor is never
      utilized more than 5%. Also, I'm sure the
      millions of people who prefer computers Just Work(tm) feel the same way.

    3. Re:Code Bloat by Anonymous Coward · · Score: 4, Insightful

      You want cross platform, you want platform support, so get used to VMs and WRAPPER code.

      You want language interop, you have to live with COM, DCOM, CORBA, XML Web services, SOAP, UNO. If not, then go back to your Amstrad or Sinclair.

      FFS you cant have your cake and eat it.

    4. Re:Code Bloat by Jugalator · · Score: 2, Interesting

      The article is trying to analyze what the bloat comes from. And no, it's not only about "unnecessary features". Maybe you should give it a read too. :-)

      --
      Beware: In C++, your friends can see your privates!
    5. Re:Code Bloat by fitten · · Score: 2, Interesting

      "Bloat" is used by a bunch of people who don't know what it means. If the code is bloated (as in a bunch of code for features that aren't used), then the code is never accessed by the CPU. That means it doesn't take up cache and it doesn't get executed. At most, it will take up some of main memory and cause longer load times but after the application is running, code that isn't executed eventually gets removed from even main memory. Simply having more code for more features doesn't do much unless the code is actually getting executed.

    6. Re:Code Bloat by Rei · · Score: 5, Insightful

      More than just code bloat: disk access speeds combined with the increase in size of everything (for "richer content", "more features", etc).

      With a lot more files, a lot larger files, etc, your performance at file access (and disk caching) will decrease unless you can increase the throughput and decrease the seek time/latency of data access from the disk.

      Back in 1998, most PCs were shipping with 5400 RPM hard drives; I bought a used 10k rpm drive for 200$. Nowadays? Most PCs are still shipping with 5,400 RPM drives, and 10k RPM is still good performance (although not the best out there - although, mine back then wasn't top of the line either).

      Disk sizes are scaling up wonderfully. Disk access speeds are not. The same holds true with RAM.

      --
      Dear Lord: One of your creatures may be hurt tonight. Please let it be the other creature.
    7. Re:Code Bloat by ackthpt · · Score: 2, Interesting
      Simple. Code bloat.

      Not as simple as that, which implies there's more code in there than necessary. What has happened is feature bloat. As an example there's a well known author who still does his work in WordPerfect 4.2 Why? Because it already does everything he needs.

      Whenever I've been confronted with the latest install of Office (at work, I use notepad and wordpad at home) I usually spend an hour or so turning off all the damn irritating automatic features. The author makes an excellent point, too, that he has bent the computer to do what he needs, rather than having so much crap to deal with bending him to meet its requirements.

      There's a lot of happy people out there with Pentiums and 486's who really, really don't want to upgrade, since everything is already the way they want it. With all the current vulnerabilities and threats, why change?

      --

      A feeling of having made the same mistake before: Deja Foobar
    8. Re:Code Bloat by pilkul · · Score: 4, Insightful

      The bottom line is that optimization is rarely the best thing a developer can be doing with his time. There's a lot more you can do with "a day" than tweak a poorly thought out algorithm. By all means optimize if your program is as slow as molasses and your profiling shows that a particular section of your code is at fault. Otherwise, good programming practice is to think about other things.

    9. Re:Code Bloat by iamhassi · · Score: 2, Informative
      "Disk sizes are scaling up wonderfully. Disk access speeds are not. The same holds true with RAM."

      Your hd is just a spinning disk, what did you expect, it to double speeds every 18 months? There's a limit to how fast you can spin the platters, after all how long have we been stuck at 52x CD-ROM drives? Sure they've gone to 10k rpm and the aerial density is much higher on today's large drives, but you can only do so much without new technology. They completely redesign chips every so often, from pentinum to pentium 2, 3, 4, etc, but the brand-spanking new hard drive you buy today is really no different than the a 10 year old drive, just a faster spindle speed and higher aerial density but the technology really hasn't changed any.

      Anyway back to the article: I think it's crap.
      "...most word processing programs started to keep up with even good typists somewhere around the 1-Ghz clock-speed mark."

      Um, what? Sure maybe if you had the latest and greatest OS and Office running the minimum amount of ram, but if you were running 98, office 97 and plenty of ram on even just a 200mhz no way would the PC not be able to keep up with a "good typists" (before it crashed, it is 98 after all). You know where all the cycles have gone? Background processes and spyware. I know plenty of people with brand new 3ghz processors that are slower than my 700mhz laptop. However this is a good thing, keeps all us computer geeks employeed doing simple things like running msconfig and ad-aware, so complain on computer reject cranky user!

      --
      my karma will be here long after I'm gone
    10. Re:Code Bloat by tim256 · · Score: 2, Informative

      Disk access speeds are not directly proportional to the RPM of a drive. If a larger capacity hard drive and a smaller capacity hard drive are phyically the same size and spin at the same speeds, the larger capacity drive will be faster. The sectors are just physically smaller. Therefore, disk access speeds are actually faster for larger capicity drives. If you do a benchmark you will find this to be true, as the physical size of the disks from 1998 to now are about the same.

      Although if disk capacity is gained by adding platters (disks), you won't see a performance gain. The number of heads labeled on the hard drive is usually directly proportional to the number of platters. If you compare the number of heads on a disk made in 1998 and a disk made in 2005, probably the number of heads has not changed a lot. A benkmark is the best way to see that disk access speeds are always increasing.

  3. Just look at the size of a word document today by marika · · Score: 5, Insightful

    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.
    1. Re:Just look at the size of a word document today by bongoras · · Score: 5, Insightful

      But you can still fit an entire book on a floppy if you use LaTeX. The morale of the story: Don't want a slow, bloated system? Then tough it out and don't use one. But don't complain when you have to type:

      \begin{enumerate}
      \item Open a terminal window by right clicking on your desktop and selecting ``Open Terminal''
      \item In that window, become root by typing {\tt su}
      \item Now put a blank CD in your drive and burn the iso image to it by typing \\
      {\tt cdrecord -dev=0,0,0 cdimageyouwanttoburn.iso}
      \end{enumerate}

      instead of clicking the bullet button or asking a paperclip to make a list. It's all a matter of what you want. There are plenty of lean, mean systems out there. Don't bitch about UI slowness unless you are willing to use a plain-text console with "screen" "mutt" and "elinks" as your main applications.

    2. Re:Just look at the size of a word document today by EnronHaliburton2004 · · Score: 5, Interesting

      Now I could barely fit a word document.

      And how much of that bloat in Word is useful information?

      If I open word, type the letter 'a', and save the document, it's a 20K document.

      If you type 'a' 2000 times, it's still a 22K document.

      What the heck is in that other 99.9% of the document?

    3. Re:Just look at the size of a word document today by squiggleslash · · Score: 4, Insightful
      Wow, talk about extremes.

      I'm pretty sure there's a half-way house somewhere. I seem to remember the early nineties were full of fully functional does-everything-I-want applications that had nice GUIs and used a megabyte or two of memory when they ran.

      I wouldn't categorize MacWrite or early Mac OS as that, but, I don't know, Lotus AmiPro and Microsoft Word for Windows 2 were pretty good, to give two examples.

      --
      You are not alone. This is not normal. None of this is normal.
    4. Re:Just look at the size of a word document today by cosmo7 · · Score: 4, Funny

      Here's that MS Word native format:

      64 bytes: Cryptic Masonic signature
      64 bytes: Reserved for Carnivore
      8KB: Macro playground
      8KB: Random extracts from King James Bible
      64 bytes: Run-length encoded document contents
      8KB: Uncompressed copy of above for compatibility

    5. Re:Just look at the size of a word document today by Smidge204 · · Score: 4, Informative

      Well you have to be careful.... some file systems have minimal increments in file sizes. For example, on my NTFS formatted system, a plain text document with one "a" in it is officially 4KB, even though there is onlt one byte of data in it.

      This is not an excuse fro a BLANK MSWord document being 19,456 bytes of course. But there is "useful" data in there...

      I'm running Win2K, and if I right click on the file and sepect "Properties", there is a summary tab that displays all the info stored in that 19k. (You might have to click "Advanced")

      The data includes:
      -Title
      -Subject
      -Category
      -Keywords
      -Template name
      -Page Count
      -Word Count
      -Character Count
      -Line Count
      -Paragraph Count
      -Scale (No idea what this means)
      -"Links Dirty?" (No idea what this is... maybe it's true if there's porn links in it?)
      -Comments
      -Author (From computer info)
      -Last Saved By... (From computer info)
      -Revision Number (Number of saves?)
      -Application
      -Company Name (From registration info)
      -Creation Date (Seperate from file system creation date)
      -Last Saved Date (Seperate from file system modified date)
      -Edit time

      Now is this ACTUALLY useful? I dunno. It might be in some situations. There should be an option for not saving this metadata though, for security if not for file size.
      =Smidge=

    6. Re:Just look at the size of a word document today by hackstraw · · Score: 2, Interesting

      Back in 2000 or so, I was trying to figure out why Word docs wore so bloated so I looked at them in a hex editor. I noticed a ton of NULLs in the document. So I wrote a simple C program to count the NULLs.

      Believe it or not, something like 60% of the document was NULLs.

      So its not really bloated, its just full of nothing :)

    7. Re:Just look at the size of a word document today by sahuaro · · Score: 2
      I love file formats like LaTeX, basic HTML, ASCII that are human readable. Even without knowing any LaTeX I bet most people could figure out your example and edit it in notepad if needed.

      I find myself using the commanline more and more plus I'm putting old equipment that no one else wants to good use. Got a 133 Pentium laptop with 32Mb RAM you can't give away? I'll take it and put it to good use! Besides that (tiny) 12" screen is just right for text!

      Sahuaro
      Phoenix Linux Users Group - Penguins in the Desert

      --
      Phoenix Linux Users Group
      Penguins in the desert
    8. Re:Just look at the size of a word document today by Trogre · · Score: 3, Informative

      Or just use a WYSIWYG LaTEX tool like this one to do all that nasty coding for you :)

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    9. Re:Just look at the size of a word document today by Just+Some+Guy · · Score: 3, Funny
      64 bytes: Cryptic Masonic signature

      As a Mason, let me be clear: the file format may indeed be cryptic, but we had nothing to do with this one.

      Besides, we're more interested in handshakes and networking. We let the Teamsters handle the obfuscation and misdirection stuff.

      --
      Dewey, what part of this looks like authorities should be involved?
    10. Re:Just look at the size of a word document today by PingPongBoy · · Score: 2, Insightful

      Don't forget page formatting, font formatting, paragraph formatting, printer settings, etc. etc.

      Go back to Data Structures 101. A lot of data structures have a head node that don't contain useful data but serve as a place to find the structure. With all the objects that can be put into a Word doc, you can expect a lot of head nodes.

      Most of the time you don't save a Word doc with just one character. You are working on a massive doc that you save frequently but you don't want to wait for the whole thing to be written every time you save. There has to be some overhead for faster saves.

      --
      Know your pads. One time pad: good for cryptography. Two timing pad: where to take your mistress.
    11. Re:Just look at the size of a word document today by batemanm · · Score: 2, Insightful

      I think Word has actually gotten better in terms of file size, it is still a complete pain in the arse and the bain of my life. When I did my undergraduate degree the report was around 10 meg, that was on Word 6.0. It was around 100 pages and have very few pictures. Now my PhD thesis is around 300 pages and is full of pictures and is currently about 6.5 meg (Word 2003). I have saved my PhD thesis out to Word 6 format before (to fix problems that word was having) and the resulting file was over 63 meg.

    12. Re:Just look at the size of a word document today by jfengel · · Score: 2, Informative

      It will amost certainly break the format. Word is designed for processing large documents, and most of this stuff is "reserved space" where the next few thousand characters would go on a disk.

      That's what allows you to, for example, type the letter "a" at the beginning of a 2 MB document without it having to shift the position of all two million subsequent characters. It allocates that stuff several thousand bytes at a time because that means it doesn't have to do it very often.

      They figure that this 20K is just fine to waste. It costs you far less than a penny worth of disk space and improves performance. The case of a file with a single character in it is degenerate; the amount of space wasted is usually far, far less.

      Theoretically they could let you tune the constant; if it were open source I'm sure you could go into some .h file and change it. But to offer that to a user, along with the thousands of other similar options, would confuse the user without making his life noticeably better.

    13. Re:Just look at the size of a word document today by RWerp · · Score: 2, Funny
      Because it is impossible for the program to do
      lseek(..., SEEK_CUR);
      write(fd, ...);
      without inserting some permanent data structures into file on disk?
      --
      "Long run is a misleading guide to current affairs. In the long run we are all dead." (John Maynard Keynes)
    14. Re:Just look at the size of a word document today by ph43drus · · Score: 4, Informative

      There is. I'm running Slackware 10.0 (can't wait to get my 10.1 disks! w00t!). I use vim+LaTeX for all my document prep needs on the command line (use an xterm if you so choose). As others have mentioned, LyX isn't bad.

      I'm a physics major at UW, so I do a decent bit of scientific work on my computer. I use GNUPlot, XFig and the Gimp to generate drawings for lab reports and whatnot.

      I'm typing this from Firefox running on the Xorg6.7.0 server+WindowMaker 0.91. The key here is to use a lightweight window manager. Blackbox and fluxbox are other good choices (light, usable, not fugly (cough, fvwm, cough)). If you have to have that desktop environment, go with Xfce.

      The only gap that I occasionally feel in my user experience is a good spreadsheet. I haven't found one. KSpread, OpenOffice Calc and Gnumeric either are or require the use of heavy GUI software which we are trying to avoid (KDE and Gnome are not as big as XP, but far too big to run comfortably on my system). I've glanced at Siag, but haven't really tried it out (I don't know scheme and don't have the time to figure it out right now--see physics undergraduate work).

      I use mutt or pine, depending on which email address I'm checking. Thunderbird looks promising for being light and good, if you want a GUI based email client.

      Recompile your kernel to match your hardware (trim the fat and optimize for your processors), and turn off any extra servers that you don't need (don't need telnetd, ftpd, &c. running? Turn off inetd--it's also more secure). Customize your boot sequence to only start and load that which your system needs and those things which you use.

      I also boot to the command line and don't run xdm or the like. I do a lot of work from the command line, and X+light WM doesn't take long to start. It is, again, one less thing wasting clock cycles on my machine.

      For reference, I'm running my Slack 10 system on an Abit BP6 with two PIII 866MHz processors underclocked to 650MHz (long story... Has to do with the fact that the BP6 doesn't technically support the PIII). I've got 384MB of RAM and a GF4 video card. It is lightning fast. The only exception to this is when I'm running X with the closed nVidia drivers (damn thing has a 3MB kernel module... grrr...), but that only adds a hang of a couple seconds when switching between X and the consoles, and that's it. If I'm not playing Quake or dealing with 3D visualization stuff, I can use the OSS driver (2D accel only), and get rid of even that performance problem.

      So, yes, the middle ground is there, and it rocks. My computing experience is awesome, my slightly dated hardware is rock solid and perfectly responsive. Take a good, customizable Linux distribution, run light weight software, turn off stuff in the background and run a lean, mean, customized kernel, and you'll reclaim those lost cycles as interface responciveness. I suggest Slackware for this. FreeBSD, Debian, and any other Linux distro which is aimed at power-users will be good for setting up a configuration like this.

      Mandrake, RHAT (RHEL & Fedora), SuSE and any other user-friendly type distro is ill-suited to this, IMO. Not that you can't, but my experience with these distros and their high-level admin tools is that if you try to do something too different from the default, it gets extra hard. So, Slackware and the like just end up being simpler, and now you know what Slack users mean when they say "it's simple." So stop giving us funny looks when we say it.

      Jeff

    15. Re:Just look at the size of a word document today by rs79 · · Score: 3, Funny
      " _real hackers_ would use straight TeX or runoff or raw postscript!"

      Oh, please, can we? I had one of the first postscript printers (on my Amiga 1000, serial #27) and while the language HP lasers used - HPGL seemed nice, Postscript seemed scary and complex; but it was obviously the one true way. Anything looking that much like FORTH had to be the answer.

      So I bought the red book. I bought the blue book. I looked for the green book. I cultivated the Reid brothers as friends. I read comp.lang.postscipt. I imaged film at 1250 and then 2450 dpi. I typeset a book on my amiga that actually got printed. I became a barely competant PS hacker. I was ready for the postscript revolution!

      Wake me up when it happens. Until then I have to put a gray border around some assholes webpage because his accountant wants it...
      dup showpage
      this, bitch.

      To comment on the original topic, I was an Assembly progammmer from 70 to about 93 and I'm telling you people the problem with code bloat is C++.

      Go back to C and check to see if it generated nice code and you can fit things on floppies again.

      I'm a contract programming whore but you can't pay me to use C++. I'd sooner do COBOL.

      Now, the interesting thing is there were TWO languages to come out of Bell Labs after C. C++ was only one of them, but it's creater had a Cerfian sense of self promotion and the language was popularized much to our collective dismay.

      Jim Fleming aquired the rights to the other language, it's called C@+ and pronounced "cat".

      A C@+ compiler written in C+@, fits on a floppy. I have one here. It's what we should be using if you want to use anything other than C.

      --
      Need Mercedes parts ?
    16. Re:Just look at the size of a word document today by Defiler · · Score: 3, Informative

      He meant "C+@", not "C@+":
      Google Search with some hits

  4. This week's action item by fembots · · Score: 5, Funny

    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.

    1. Re:This week's action item by MrWim · · Score: 3, Funny

      £100000000000000000 pounds for the first person that can accomplish this in a week

    2. Re:This week's action item by ender- · · Score: 2, Funny

      I remember my Mac SE/30 fully booted in 6 seconds. That's with nothing in the system folder but System and Finder. After a lot of extensions, it was more like 15-20 seconds. Still, very fast.

      It got worse and worse through the OSs. But now OSX is actually getting better and better. My G4 laptop boots as fast as my AMD PC desktop with better hardware - about 45 seconds (including pause for login).


      As a sys-admin, I find that the faster computers get, the longer they take to boot [especially servers]. Eventually, computers will be so fast, that they will never finish booting.

      Ender-

      PS. Yes I stole that, I just don't remember where I first heard it.

  5. Where are all the precious cycles going? by R2.0 · · Score: 3, Insightful

    spyware, trojans, p2p apps.

    --
    "As God is my witness, I thought turkeys could fly." A. Carlson
  6. On complexity, code bloat and user interface by Anonymous Coward · · Score: 5, Informative

    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

  7. Nobody give a fig about optimizing by winkydink · · Score: 5, Insightful

    '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

    1. Re:Nobody give a fig about optimizing by cortana · · Score: 3, Insightful

      That's just what the assembley programmers said when researchers were moving to C. ;)

    2. Re:Nobody give a fig about optimizing by dattaway · · Score: 4, Insightful

      Back in the old days, popular applications were stand alone, written in assembly, and made to fit within a single code segment. Since resources were small, much care was taken to get the most out of so little. Software back then were simple like motorcycles; they had the basics bolted to a simple frame and off it went. Today we have software written with stock libraries, made to work with all kinds of resources and standards, and required to work with large filesystems and memory maps. Applications back then fly today, but seem like a small insect when it comes to functionality.

    3. Re:Nobody give a fig about optimizing by Rorschach1 · · Score: 5, Interesting

      Nobody except embedded programmers. My biggest project of late runs on an 8-bit, 8 MHz CPU with about 7k of Flash and 192 BYTES of RAM. Not megs, not kilobytes, but bytes. That's equivalent to less than three lines worth of text. And the code's written in C, rather than assembly, so while it's easier to maintain, it takes more effort to make sure it stays efficient.

      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.

    4. Re:Nobody give a fig about optimizing by tomstdenis · · Score: 4, Insightful

      I'd hope not because for most problems efficient *algorithms* are more important than efficient implementation.

      Tom

      --
      Someday, I'll have a real sig.
    5. Re:Nobody give a fig about optimizing by KiltedKnight · · Score: 4, Interesting
      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.

      I agree completely. I've done some programming for OS-9, and when we were creating some software libraries, we had to do was worry about things like program footprint size and memory allocation/deallocation. We were using a cross-compiler and doing development in C and C++. Something as simple as the order in which you declare the variables could make a noticeable difference in program size. Memory allocation and deallocation had to be done by the top level of the program. The support libraries had to be written to accept a memory block to use and how large it was. The last thing we wanted to do was use up the 4MB of RAM (which had to hold the OS, plus any programs you were running) we had by making large chunks of it unusable because it first was malloc()'ed, then free()'ed. We didn't want to risk having whatever garbage collection scheme existed to be able to properly operate... assuming there even was one. (This was 1997.)

      Of course, if you want speed, you have to learn to take advantage of the "short circuit" of && and ||. While nobody's really going to notice the several nanoseconds you might use up by doing !strncmp(str1, str2, n), when you process millions of rows from a database, it can make a big difference by not forcing a program pointer jump by saying
      if (str1[0] == 'a' && !strncmp(str1, str2, n))...

      The mindset we have now is a direct result of the prevailing attitude that memory is cheap and processors get faster. A friend of mine is no longer asked to interview prospective candidates because he would always ask questions about optimizing code and making it run faster. The candidates nearly always had the look of a deer caught by headlights, and these supposedly knowledgable programmers (interviewee AND interviewers) couldn't answer these questions.

      --
      OCO is Loco
    6. Re:Nobody give a fig about optimizing by grumbel · · Score: 2, Interesting

      ### Applications back then fly today, but seem like a small insect when it comes to functionality.

      Well, a 10 year old NeXTSTEP computer can do a lot of stuff that I still can't do with Gnome and KDE, and yet it is still faster doing some things than todays computer. Same with Inkscape, I tried to play around with some of the stuff I did on a P90 with 24mb RAM in CorelDraw years ago, Inkscape turned out to have huge problems rendering the stuff on a 1Ghz Athlon with 768mb RAM, was almost unusable. Its true that there are some things that I can do today that would have been impossible some years ago (fullscreen video, todays games, etc.), yet there are many many things that are basically exactly the same as years ago, only that they havn't speeded up at all or even got slower, even if the CPU speed itself has massivly increased.

    7. Re:Nobody give a fig about optimizing by morcheeba · · Score: 2, Interesting

      A little tip from when I wrote 8-bit embedded code...

      Our c compiler had an output format that would list the c code and resulting assembly language intermixed. I wrote a quick little program that would read this, count the bytes of code per line, strip the assembly, and then just print out each line of C with the byte count at the beginning of the line.

      This was easier to look over and you could see if some c expression was really bloated - I'd then go and simplify the code.

      For example, I've been disassembling this little project and I can tell that the source firmware has this mistake:

      U88 a;
      U32 b;

      bad: b = b & a;
      good: b = (U32) ((U8) b & a);

      The bad way hard codes in a lot of "& 00" instructions for this little 8-bit processor, while more selective casting (while ugly) can overcome the problem. Repeat 10 times, and you'll save 200 bytes, or almost 3% of memory.

    8. Re:Nobody give a fig about optimizing by lgw · · Score: 2, Insightful

      I think the 80/20 rule applies strongly here. Trying to squeeze out the last wasted cycle is, well, a waste these days. However, a little thought goes a *long* way towards performance. Does that algorithm scale properly? Do I really need to allocate that memory dynamically, or is there an easy way to use the stack instead? Is that library call going to do 99% of its work on things unrelated to the results I want? Am I spending resources cacheing something I *know* I'll never use?

      Its annoying when people don't bother with even the most obvious performance considerations during design.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re:Nobody give a fig about optimizing by groomed · · Score: 2, Insightful

      Bah. n is usually small.

  8. What are they talking about? by brian0918 · · Score: 5, Funny

    Windows 3.1 and Notepad run nice and fast on my 3.2GHz 8GB RAM box.

    1. Re:What are they talking about? by fembots · · Score: 2, Funny

      But my Donkey Kong is throwing the barrels too fast!

  9. What about.... by BWJones · · Score: 3, Interesting

    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.
    1. Re:What about.... by civman2 · · Score: 2, Insightful

      You miss the point of the poster. New programs take about as much time to do things on today's systems as old programs did on yesteryear's systems. Old programs are blazingly fast on today's machines.

    2. Re:What about.... by lakeland · · Score: 2, Informative

      You totally missed the point.

      The latest 3D shooter was really pushing the limits of technology, frequently slowing to a crawl on an ordinary PC when there were lots of monsters in sight. What year was this? Well, it could be last month with halo 2. Five years ago with Quake 2, ten years ago with doom, or fifteen years ago with Wolfenstein. Yes, in the last 15 years, first person shooters haven't got any faster. Of course, my memory of dates is a little rusty, but I recall Wolf3d running just fine most of the time on my flash 386DX/40, though it didn't cope with more than 6 enemies at once. We've gone forward fifteen _years_ and now doom 3 runs just find on my XP 2600+ but doesn't cope with more than 6 enemies at once.

      Now, nobody is trying to claim wolf dprd is much as doom is doing, but the guy sitting there with the stopwatch could easily say things haven't got any faster in fifteen years. Similarly, load times have barely improved in fifteen years -- you try loading an old version of excel on a 486 with plenty of ram. Now do it on a brand new box with plenty of ram. The new box is about twice as fast. So in ten years, we've just managed to double real speed.

      Returning to your calculation, if you had that G5 a few years ago, I bet you'd have calcuated something more complex. The time things take bears much more resemblence to what we'll put up with than to anything else. I've had the most weird experience of this on my current project. It was started in 1998 and while most of the code has been replaced over the years, there is still a fair amount of code in use that was written in '99. Now, back in '99, the computer I was using was slower than my current one and so I wrote progress bars and the like. If I run the system now, you see those progress bars zip across in minutes. Then you come to the bits of code that were written in 2001 and the progress bars go across fairly swiftly. Then you come to the bits written in 2004 and the progress bar takes a day (almost as bad as the 1999 bar did in 1999).

      So, have I forgotten how to code like I did in '99? No, just my expectations of what I can do have increased and the latter stages of the program are far more ambitious. Similarly, the people working on Excel 2005 will be concentrating on making it that much easier to use, and just like every generation before them, they'll measure CPU performance in seconds rather than in clock cycles. A better usability rating in the twice time is unacceptable, but a better rating in twice the clock cycles is a huge win (two years apart, naturally).

  10. Clippy by rlp · · Score: 5, Funny

    Someone needs to ask Clippy what he's doing with all those spare cycles.

    --
    [Insert pithy quote here]
    1. Re:Clippy by nine-times · · Score: 5, Funny

      Browsing the Staples web site for mail-order brides.

    2. Re:Clippy by dexter+riley · · Score: 5, Funny

      It's a little-known fact that Clippy doesn't really go away when you click "just type the letter without help". He returns to a background process, where he lives with his wife, two kids, and the "Search Companion" Dog. Microsoft Bob lives there, too...well, he actually lives in a virtual cardboard box behind the "bowling alley" thread.

      It's kinda like the Matrix, only less resource-intensive, and without as much "whoa" time.

  11. So by kevinx · · Score: 2, Insightful

    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.

    1. Re:So by kevinx · · Score: 2, Funny

      but the icing isn't as good.

    2. Re:So by Flashpot · · Score: 3, Insightful

      But people AREN'T demanding it. It's being foisted upon them. Nobody is DEMANDING that windows-xp is to be delivered on all new peecees except Microsoft.

      --
      That which does not kill her only prolongs my agony.
  12. Fun fact! by Kufat · · Score: 2, Informative

    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.

    1. Re:Fun fact! by Famanoran · · Score: 2, Informative

      On my Win2k SP4 laptop, notepad uses 1,652KB memory, without a file..

      Huge difference even between Windows versions... try turning off your Windows XP themes :)

    2. Re:Fun fact! by litewoheat · · Score: 3, Informative

      That's BS. Task Manager reports peak usage. Minimise Notepad then look. It really takes 212k. Microsoft needs to get rid of Task Manager for regualar installs and jsut provdie a simple version for people who don't understand virtual memory.

      I'm sooo sick of people looking in Task Manager then saying how much an application sucks because of how much "memory" it uses. For the most part, memory is not a factor.

    3. Re:Fun fact! by litewoheat · · Score: 2, Informative

      This is the stock response we send to customers who get uppity when they play with Task Manager. I belive it was taken from Microsoft or something.

      Windows uses virtual memory. Each process has its own virtual address space which is 4GB large. The address space is split into pages 4KB large. Each page may be free (it is not backed by any real memory, access to it is invalid) or committed (there is actual memory behind it). For each committed page, there is a matching 4KB page in some file on the hard drive, usually the system paging file but may also be an executable file or some data file. Also, when the page is in use or was recently, it is matched by a page of physical memory (meaning the actual RAM chips installed on the motherboard). When a program loads, the code and data are brought into a virtual address space. Code pages are backed by the executable file itself while data pages are backed by the paging file. The reason for this is that many processes running simultaneously may use the same code (multiple instances of the same program running, or a DLL loaded into different processes), but each such process needs to have its own copy of the data. Note that when such a shared page (i.e., a page of code from an executable file) is loaded into several processes, it takes space in each process' virtual address space separately, but all of those virtual pages are mapped to the same page on disk and the same physical page (if any). When the program accesses a virtual page, the OS needs to bring the data into physical memory. If the virtual page is already backed by a physical page, nothing needs to be done. Otherwise, the page of data must be read from disk. Typically, after being thus loaded, the page remains in physical memory, in case it is needed again later. When some other (or the same) program needs to load another page and the OS detects that it is short on physical memory, it selects the physical page that was accessed most recently, saves it to the disk and reuses the memory for the new page. Note that data may stay in physical memory long after it was last used if there is enough free RAM - the OS tries to avoid slow disk access as long as possible. The working set of a process is the set of all virtual pages that are currently backed by physical pages. Working set includes both data pages (coming from the system paging file) and code pages (coming from EXE and DLLs loaded into the process). Remember that a single physical page may be part of working sets of several processes (e.g. all processes that have loaded a particular DLL). What Task Manager displays in the Memory Usage column in the Processes tab is actually the total size of the working set. It does not accurately reflect the actual memory requirements of the process for the following reasons. First, the working set contains memory pages that were used long ago, are not used currently and will be freed immediately if the OS decides it's low on RAM. Second, if a single physical page is part of the working set of two processes (as often happens with code pages), Task Manager includes it in the total for each process, so if you add up the working set size for those processes, this page will be counted twice and you will end up with a number that overestimates the actual RAM usage. This second problem heavily affects programs that use WebBrowser control. WebBrowser is a very complex piece of software - it uses lots of DLLs containing megabytes of code. All of this code is loaded into the address space of every process that uses WebBrowser, and reflects in the process' working set size. The code is never loaded twice into physical memory, though, since all those processes share the same RAM pages. In particular, since Windows Explorer and Internet Explorer both use WebBrowser internally, the code is always loaded into RAM anyway.

    4. Re:Fun fact! by Johnno74 · · Score: 4, Insightful

      Nope, wrong. Task manager reports working set, which is whatever memory windows THINKS the process is using at the moment.

      Reporting the total memory allocated by an app is meaningless, because much of that memory includes things like memory-mapping DLLs that are only loaded once, and shared amongst all processes using them.

      Windows constantly trims pages from the working set of each process that haven't been accessed in a while and pages these out to disk.

      When you click the minimize button windows assumes that the app (or at least large parts of it) are going to be inactive for a while, so it tries to remove as many pages from the working set as possible - hugely reducing the "memory usage" reported in task manager. Sometimes it is a little too agressive in trimming pages from the working set, and the "memory usage" immediately climbs a little again, as the app accesses memory pages that windows thought it could page out.

      Try it with an app like MS Word that has background threads that constantly check spelling and stuff, and you'll see the working set goes up for a few seconds after you minimize it.

    5. Re:Fun fact! by Coryoth · · Score: 2, Insightful

      I'm sooo sick of people looking in Task Manager then saying how much an application sucks because of how much "memory" it uses. For the most part, memory is not a factor.

      You think that's annoying? You should try having to put up with all people who complain "X is sooooo bloated" because they looked at memory usage on top but have no idea how it is calculated for X, nor what the figure really means. Every single article that has any mention of X11 gets at least 15 posts all saying X is bloated based on top, and every time there are a bunch of people who give long and careful explanations as to why the figures in top are the way they are. And then the next article comes along and a whole bunch of people decide to demonstrate exactly how little they've learned...

      Jedidiah.

  13. Change isn't always a given. by litewoheat · · Score: 3, Insightful

    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.

    1. Re:Change isn't always a given. by iroll · · Score: 2, Informative

      You've obviously never driven a Model-T.

      None of the pedals do what you'd expect, and there's a couple extra levers that also do seemingly random things. Tonight, if you say prayers, give a little thanks for modern transmissions and synchromesh. Trust me, they're a beautiful thing.

      --
      Repetition does not transform a lie into the truth. - FDR
  14. A few things by macklin01 · · Score: 5, Informative

    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
  15. Reminds me of a song... by nharmon · · Score: 4, Funny

    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?

    1. Re:Reminds me of a song... by Buran · · Score: 5, Funny

      Where has all the spyware gone? Long time passing?
      Where has all the spyware gone? Long time ago
      Where has all the spyware gone?
      Gone to spammers, everyone.

      When will we ever learn?
      When will we ever learn?

      (Apologies to Mikhail Sholokhov, Pete Seeger & parent poster)

  16. uh... how many windows are open? by Hamlet+D'Arcy · · Score: 3, Informative

    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
  17. Intel Extreme Graphics by toddestan · · Score: 3, Interesting

    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.

  18. Usere experience unchaged .. nooo way by iMaple · · Score: 5, Insightful

    But, in fact, the user experience of performance hasn't improved much over the past 15 years

    Now that really depends on what you would call 'user experience'.
    Compare a file manager 15 years ols (PC Tools had one right .. for DOS) to the KDE/ Gnome file managers (Ok MC looks the same still :) ).
    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 .

    1. Re:Usere experience unchaged .. nooo way by Anonymous Coward · · Score: 2, Insightful

      This is absolutely the point. The user experience hasn't changed in 15 years?

      Well 15 years ago was 1990. I was in high school, and my Dad was running a 386sx 16mhz - I think it had maybe 2 meg of ram, and a hdd that was upgraded to 60 meg - of which my dad let me put games on 20. Windows 3 was what we were using, I think. Word processors were just getting the hang of GUI. Wing Commander was the most amazing thing ever. Playing games on your computer involved a whole lot of monkeying with drivers and autoexec.bat / config.sys to get as much free base ram as you could. User experience changed since then? Hell yes.

      Charitably, 10 years ago was 1995, and win95 had just come out. Holy crap - multiprocessing! Seebach ends his article suggesting that we open a bunch of programs and see how sluggish our computers get. This "open a bunch of programs" thing only just now - in 1995 - becomes possible in a consumer environment. And, by the way, when was the last time anyone actually ran win95 (i'll give ya osr2!) on a ... say... P133, with oh, 16 or 32 meg of ram (not that this is a '95 era machine...)? You'll wait around for 5 minutes to see that hourglass go away! Run a bunch of applications, then listen to that disk thrash! Seebach's "cranky user" moniker is entirely appropriate. In true curmudgeon style he bitches about today, and compares it to some imagined utopic past. Today I can have windows open all over my 1600 x 1200 desktop. Seriously, like 15 windows is no problem. Not so in 1995.

      I'd agree that since maybe the PII - 400 mhz the user experience hasn't lept forward. Why? Because things at that point were happening about as fast as you could want. A PII 400 running a similar era OS - win95 osr2 with 64 - 128 meg of ram on it could bring up the average app as fast as you could want. Since that point I've felt like CPU has had more to offer than wisely written software (of similar era). Even clippy - while stupid - isn't particularly slow. Note that this is on a relatively well maintained machine. All bets are off when Joe User runs "Free Porn Dialer!!!" or turns off his virtual memory or whatever dumbass thing.

      Keep in mind that "slow" and "fast" are relative terms. Poor Pete S. double clicks on his Word icon and has time to roll his eyes before the app is ready to do his bidding. In 95 users lucky enough to have a P60 or *gasp* a P90 would order Word - word what, like 2.0? - to start up and would be impressed when it was ready to go in 20 seconds. The fact that people expect things to snap on their computers instantly is a sign of how fast the experience IS today. Back in the late 80's if you knew the name of the file you wanted you could type DIR and almost scan the text fast enough to spot your file as it scrolled the screen. SCROLLING THE SCREEN took a measurable amount of time if your computer had your average trident VGA ISA-bus video board.

      All of this, of course, and we don't even need to talk about the difference between EGA porn over the 9600 baud modem from 1990 and the stuff we've got out there now...

      Bah. At least, that's the way that I remember it. Maybe I'm the cranky one.

  19. Hello world of today by G3ckoG33k · · Score: 2, Funny

    Hello world of today is larger than ten years ago

    1. Re:Hello world of today by Tumbleweed · · Score: 2, Funny

      title Hello World Program (hello.asm)
      ; This program displays "Hello, World!"

      dosseg
      .model small
      .stack 100h

      .data
      hello_message db 'Hello, World!',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: bronson@engr.latech.edu (Patrick Bronson)"

    2. Re:Hello world of today by PedanticSpellingTrol · · Score: 2, Funny
      It's true, 380K (WTF Mate?) vs 83K in '93. Still, whatever happened to just good old
      #include <stdio.h>

      main()
      {
      for(;;)
      {
      printf ("Hello World!\n");
      }
      }
      ?
    3. Re:Hello world of today by tomjen · · Score: 2, Funny

      For those how dont realise it - the above program is meant to run in dos - properly as a .com program - that is no overhead to .exe headers - but also limited to 640k and no external liberaries.

      --
      Freedom or George Bush
    4. Re:Hello world of today by Bloater · · Score: 2, Funny
      ah crap. That's posted with plain text and the arsing thing got formatted all shitty!
      ;; hw.s
      ;; assemble with as -o hw.o hw.s
      ;; then link with ld -o hw hw.o
      ;; then run with ./hw
      ;;
      ;; does not account for interrupted or
      ;; incomplete write, needs more code for that,
      ;; can't be arsed :)

      .globl _start
      .text

      _start:
      movl $4,%eax
      movl $1,%ebx
      movl $msg,%ecx
      movl $msg_end - msg,%edx
      int $0x80
      movl $1,%eax
      movl $0,%ebx
      int $0x80 .data

      msg: .ascii "Hello, World!\n"
      msg_end:

      ;; This is an attempt to get past the (ironically) lame slashdot lameness filter
    5. Re:Hello world of today by prockcore · · Score: 2, Funny


      CREATE TABLE message (text char(15));
      INSERT INTO message (text) VALUES ('Hello, world!');
      SELECT text FROM message;
      DROP TABLE message;


      Kids today don't know optimization.

      SELECT 'Hello, world!';

      That's all there is too it.

  20. Heh by FiReaNGeL · · Score: 5, Insightful

    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.

    1. Re:Heh by hackstraw · · Score: 2, Insightful

      Where are my CPU cycles and memory going on my AMD 3500+ and 1Gig 400MHz DDR Ram? Most of the time, nowhere.

      Thats true and untrue, depending on how you look at it. I have a CPU meter on my personal machine and I expect it to be hovering around 0. Right now its just got a little of activity going as I type this because it is spell checking as I type each word. Much less than 10% of the CPU. (I wish OSes came with these things so that people were aware of what was going on with their machine like if its infected with a virus or something, but thats another topic).

      I expect it to stay hovering at the 0 mark unless I am doing something. Now, when its not true and when I want good CPU performance is when I launch an app, or do something that requires a little more CPU power like using scp, where it is encrypting or decrypting all of the information that I can put down my network connection as fast as possible. (Or if I forget to leave flash enabled and some cute ad or something is eating 100% of my CPU).

      Also its worth mentioning that most people don't need that much CPU power. Look at PowerBook and Mac Mini users. Those are pretty old processors. In the Intel land, anything over 1.5 or so GHz should be more than fine for most people.

      Also, most people don't understand bottlenecks. They don't know that CPU processing is about an order of magnitude greater than memory access, and that memory access is about an order of magnitude slower than disk access which in turn is about an order of magnitude slower than network access. I remember when someone 1st got their brand new 486 and I was commenting on how quick it was, and then we were waiting for a file to be copied to or from a floppy and he said "That is fast?".

      So the cycles really only get used in bursts for doing something, and it adds to the user experience. With the advent of mulitcore processors, and hopefully power saving by lowering clock speeds when unneeded. I would expect this "bursty" performance to be even more exaggerated. It ads to the user experience. Its only people that really know what they are doing to need sustained CPU processor speed, and for them, nothing is ever fast enough.

  21. Uhmmm, no. by Scratch-O-Matic · · Score: 4, Funny

    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.
  22. Have you used a Mac lately? by coffeeaddict007 · · Score: 3, Interesting

    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.
  23. Where have all the cycles gone? by Anonymous Coward · · Score: 5, Funny

    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.

    1. Re:Where have all the cycles gone? by Stanistani · · Score: 5, Funny

      The time to worry is when this cycle suspends atypically, causing a dependent issue.

    2. Re:Where have all the cycles gone? by the+real+darkskye · · Score: 4, Funny

      So thats where child processes come from!

      --
      Music is everybody's possession.
      It's only publishers who think that people own it.
      Fuck Beta
      ~John Lenno
    3. Re:Where have all the cycles gone? by AHarrison · · Score: 2, Funny

      It's funny when a /.'er claims to have a girlfriend. I have to automatically assume that the girlfriend he is talking about is some government project from the 40's that is just that slow.

    4. Re:Where have all the cycles gone? by zCyl · · Score: 5, Funny

      That's why you don't want to fork outside of protected mode.

    5. Re:Where have all the cycles gone? by mrbuttboy · · Score: 2, Funny

      you, Sir, should be hit with a wet fish for that comment.

      --
      What do you say to the man that has nothing? Cast it away!!
    6. Re:Where have all the cycles gone? by alexo · · Score: 4, Funny


      >> "My girlfriend has a cycle every month."
      >
      > Heat?


      Running at about 380 nano-Hz, I would rule out heat issues.

    7. Re:Where have all the cycles gone? by pipingguy · · Score: 2, Funny


      And to think that I used to consider lame-o piping engineering-related jokes about pipe nipples, trycocks and field erection as being funny...

    8. Re:Where have all the cycles gone? by Musrum · · Score: 2, Funny

      which makes the grandparent the super geek IMO: enough geek knowledge to acurately describe a 30-31 day cycle in Hz; and enough geek ignorance to assume a 30-31 day menstral cycle...

      --
      In Soviet Amerika the ballot boxes YOU!
  24. Stuff running in the background by grahamsz · · Score: 5, Insightful

    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.

  25. Mac OS X by weave · · Score: 4, Insightful
    An interesting thing I've noticed since I got a laptop running OS X is that it seems every new release and patch for it "improves performance" in some area.

    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.

    1. Re:Mac OS X by bynary · · Score: 2, Informative

      As a user of OS X v. 10.0, I assure you that it was an inefficient piece of crap. OS X has come a long way since it was first introduced to the public.

      --
      http://www.bynarystudio.com
    2. Re:Mac OS X by bill_mcgonigle · · Score: 2, Interesting

      Yes and yes. Apple got religion a couple years ago and got on the profiling tools bus internally.

      Mac users are demanding and impatient. All that typical slowness you see logging in, opening apps, closing windows, etc., with no feedback on XP makes Mac users want to pluck their eyes out.

      You can come out with something quite elegant, like iPhoto 2, but if the performance isn't there that's all you're going to hear about. Mac users will whine incessantly until it's fixed.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    3. Re:Mac OS X by mj_1903 · · Score: 4, Informative

      I think it's a bit of both.

      Apple pushed to get OS X released to the public and so they followed the belief of "make it work then optimise". Today we can see the fruits.

      An example of this is Quartz. Quartz basically had all the components you needed in 10.0 to do some great on screen rendering and it was reasonably fast. Through each iteration of Mac OS X though it has improved. In 10.1 the speed of the code was improved. In 10.2 we had partial acceleration via the GPU. In 10.3 more optimising. In 10.4 we can see they have completely pulled apart sections of Quartz and rewritten it as well as buffering it all onto the graphics card. That is but one example though, there are plenty of others.

      On the other hand, apps like iPhoto and GarageBand were really sluggish and the system reflected that. Mac users cried foul and now you have iPhoto 5 which is blazingly fast and literally all the apps have been following that trend. I know as a developer myself I spend a good 20-30% of my time optimising code simply so users get the speed that they are now used to. It's good, we needed it, especially when we were stuck on the G4's. Now with the G5's it's just icing on the cake.

    4. Re:Mac OS X by bonch · · Score: 2, Insightful

      To be honest, part of it was the latter. I don't consider OS X truly usable up until the 10.2 Jaguar release.

      It was a totally new operating system replacement for Apple after over a decade of trying, and they rushed it out as quickly as they could just to stay alive (iPods weren't out yet, so they were living off the iMacs). All is forgiven now, especially considering the fantastic technology they had to inherit and integrate. Jaguar was the sweet spot where they finally got it right.

  26. subjective performance... by bani · · Score: 3, Insightful

    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.

  27. In the old days, ... by Great_Geek · · Score: 4, Interesting
    In the old days, things were done with only a few cycles:

    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.

  28. Re:My memory Usage by Naikrovek · · Score: 4, Informative

    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.

  29. DCTI by Leroy_Brown242 · · Score: 4, Funny

    distributed.net is where all the smart CPU cycles have gone! :)

  30. So the problem is one of expectations by Thunderstruck · · Score: 2, Interesting

    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.
  31. 99 % Waiting by Jalopy · · Score: 2, Insightful

    As any computer science student knows, most processors spend 99 percent of their cycles waiting. However, now they're waiting much faster.

  32. Re:My memory Usage by HeghmoH · · Score: 4, Insightful

    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!
  33. Re:My memory Usage by hasdikarlsam · · Score: 2, Insightful

    So that's why it failed to play a 200MB mp3?

    Not very good design, is it?

  34. Thead priorities by PxM · · Score: 2, Insightful

    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

  35. My favorite theory... by merlin_jim · · Score: 4, Insightful

    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?!
  36. I can't work 2^(years/1.5) faster... by nick_davison · · Score: 5, Interesting

    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.

  37. Re:Mac OS X - likewise by timothy · · Score: 2, Informative

    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
  38. Its not bloat if you derive utility from it by Ars-Fartsica · · Score: 4, Insightful
    I am tired of seeing this rolled out naively again and again. I like smooth fonts, multimedia support, device management, hires icons, a little bit of eye candy etc etc.

    I derive utility from them and my hardware can handle it. This is not bloat.

    1. Re:Its not bloat if you derive utility from it by Anonymous Coward · · Score: 2, Funny

      Where have all cycles gone
      Long time passing

      Where have all the cycles gone
      Long long time ago

      Where have all the cycles gone
      Gone to gui bloat every one

      When will they ever learn
      When will they ever learn.

    2. Re:Its not bloat if you derive utility from it by EmbeddedJanitor · · Score: 4, Insightful
      What is bloat though is the shitty code behind these. Nice bloaty STl C++ class implmentation that does, in 200 line, 5kbytes and 5000 cycles what a tight bit oc C can do in 20 lines, 100 bytes and 200 cycles.

      Bloating isn't just in RAM, CPU and diskspace. It's now happening to other resources like network bandwidth too. Ten to 15 years ago I could do a lot of very useful stuff with a 1200baud dial up. Now 50k dialup is pure crap for many purposes, mainly because of bloat.

      --
      Engineering is the art of compromise.
    3. Re:Its not bloat if you derive utility from it by Hektor_Troy · · Score: 2, Interesting

      That's one way of looking at it.

      My former boss had another way of looking at it, after I talked him through some of the stuff I had done to optimize a program.

      "If it takes someone other than you more time to figure out what you're doing, than a user will save in a day - then it's not worth doing. Because something will break, and you might not be around to pick up the pieces."

      And I have come to think that he's right. I have on occation made some fairly ingeneous code optimizations, which took me way too long to figure out when I looked at it six months later. I knew that what I'd done was smart, really smart. I knew that on that portion of the program I'd shaved something like 15% off the run time (some weird ass calculations). Just wasn't sure what the hell it was, that I was actually doing.

      Sure, it ran faster than what I changed it to, but what I ended up revising it into would probably take me five minutes to figure out as opposed to more than an eight hour work day. The new version is about 5% slower than what I had earlier, which means about 2 minutes on a regular run through.

      Yes, that's bloat compared to what I can do, but I don't really care.

      --
      We do not live in the 21st century. We live in the 20 second century.
    4. Re:Its not bloat if you derive utility from it by shellbeach · · Score: 2, Interesting

      I am tired of seeing this rolled out naively again and again. I like smooth fonts, multimedia support, device management, hires icons, a little bit of eye candy etc etc.

      But it's still bloat! So, OK, you might like it, but you don't need it to get the job done, do you? You could manage files with a filemanager that doesn't have svg icons, you could code or word process with a application that doesn't have sub-pixel smoothed fonts. Eye candy is eye candy - it appeals to the masses, but if your computer is only a means to an end (and hell, I know mine isn't half the time, but that's beside the point) then all that eye candy doesn't make the end job any better and it certainly doesn't make it get done any faster.

      Personally, I can't stand bloated code - just because you've got the cycles, doesn't mean you have to waste them on inefficient crap. And that's probably why I use IceWM (which has more than enough eye candy for me) instead of KDE or GNOME, Nedit instead of emacs or vim, rxvt instead of Eterm, etc, etc. Mind you, I also reckon the article is based on looking at the past through rose-tinted glasses: I remember waiting minutes for a word processor to start up ten-fifteen years ago, and things seem to be a lot more snappy now even with all the modern bloat ...

  39. I somewhat disagree.. by vertigo · · Score: 3, Informative

    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.

  40. The Future of computing by neomage86 · · Score: 2, Insightful

    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.

  41. Software hiding the complexity by MobyDisk · · Score: 3, Interesting
    Software spending CPU cycles hiding complexity is a good thing. Software spending CPU cycles hiding simplicity is a bad thing. Many times, "wizards" are used that make things harder than the manual process. For example:

    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:
    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 .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.

    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.

  42. Vested Interests by benjamin_pont · · Score: 3, Insightful

    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!

  43. Start-up time by Trogre · · Score: 2, Interesting

    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
  44. It's not just that... by bonch · · Score: 5, Insightful

    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.

    1. Re:It's not just that... by The+Bungi · · Score: 3, Insightful
      Windows 3.1 may have been incredibly snappy

      I see your point, but let's put things in perspective - Windows 3.x was not snappy on common hardware available in that day, which was pretty much a 486DX2-50/66 with 8MB (average) of RAM and slowish IDE HDs. It really wasn't until the Pentium 60/66 became more mainstream (and I managed to get my hands on one) that 3.x actually seemed damn fast. This was especially true for WFW, which was rather slow on a DX33, but OTOH it actually got better if you threw 32MB or RAM at it, whereas the normal version of Windows stopped noticing once you went past 16-24MB.

      Don't get me wrong, I'm not saying it was unusable. It just wasn't particularly snappy.

      It's always been this way - when Windows XP came out the majority of people were still running PIII's in the 450-900MHz range; it wasn't until you got a P4 that things started looking rosy. XP/2003 on a 3GHz P4 with HT are positively snappy. But as long as Intel continues to deliver...

  45. Re:My memory Usage by Yokaze · · Score: 2, Funny

    > 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"
  46. Isn't it obvious? by UnknowingFool · · Score: 2, Funny
    at where all the precious processor time and memory are going.

    1) pr0n
    2) Sharing pr0n.

    --
    Well, there's spam egg sausage and spam, that's not got much spam in it.
  47. Not to mention power consumption by pslam · · Score: 2, Informative
    Nobody except embedded programmers. My biggest project of late runs on an 8-bit, 8 MHz CPU with about 7k of Flash and 192 BYTES of RAM. Not megs, not kilobytes, but bytes. That's equivalent to less than three lines worth of text. And the code's written in C, rather than assembly, so while it's easier to maintain, it takes more effort to make sure it stays efficient.

    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...

  48. Redmond is stockpiling CPU cycles. by Chas · · Score: 2, Funny

    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!!!
  49. Not Lazy. by juuri · · Score: 3, Interesting

    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.
    1. Re:Not Lazy. by Cee · · Score: 5, Interesting

      If you have the entire contents in memory you can be assured of not skipping if there becomes contention for the disk.

      Well, the process can still be paged out. So you don't really gain anything from doing that.

      iTunes on the mac is famous for not skipping no matter the system load, guess why?

      Decoding an mp3 file is not a heavy task, even a 486 CPU would manage that. And Winamp hasn't skipped on my computer either, regardless of load. So I don't think it has anything to do with pre-decompressing the music.

    2. Re:Not Lazy. by BayBlade · · Score: 4, Interesting
      Well there are other issues as well, falling under the "ease of use" umbrella.

      It doesn't have to be a heavy task--I noticed in iTunes you can modify a playing file in all kinds of odd ways--there is no need to lock the file after its been loaded and started playing.
      WinAmp just falls down here--update a playing file's ID tags and it skips (on a modern, otherwise unfetterd system) or try to rename it outside of the application, and it fails miserably because the file is (obviously) locked.

      You may not like Apple's approach, but it works well enough for everyone else.

      --

      The key difference between a Programmer and a Senior Programmer is that one of them is Mexican.

    3. Re:Not Lazy. by NMEismyNME · · Score: 4, Informative

      Actually, I was stuck with a 486DX266 for quite a lot longer than I would've liked to have been. It was a brand name one from an era where brand name meant quality components instead of fake cache chips and was actually rather fast for what it was, but in order to decode an MP3 I had to use players which would allow me to decode in mono and in some cases only decode at 22050.

      This is of course long before I had ever used linux, and for all I know the experience of playing MP3s on a 486 in linux could be entirely different, but MP3s + 486 + Winblows = glitches, skips, crackles, pops and not a whole lot of CPU left to do anything else.

    4. Re:Not Lazy. by toddestan · · Score: 3, Interesting

      ID3v1 tags are stored at the end of the mp3 file, and Winamp can usually modify those while playing without a problem. ID3v2 tags are stored at the beginning of the file, hence Wimamp skips when you modify it.

      Another annoyance is older versions of Winamp didn't like it when you deleted a file that it had in a playlist, but it wasn't playing. Windows Media Player is the same way though.

    5. Re:Not Lazy. by Ritontor · · Score: 2, Funny

      I used to play mp3s quite happily on a 68020 based Amiga 1200. Don't know why you were having so many problems with a 486... it'd have what, 10 times the processing power?

      --
      Perhaps the answer to the problem of teenagers dropping bricks from motorway and railway bridges is to sue Tetris.
    6. Re:Not Lazy. by mattgorle · · Score: 2, Informative

      I started running Linux on my 486DX2/66 (became a DX4/100) in '97 and my impression of mp3 playback (using mpg123, iirc) was that I had a decidedly better experience under Windows using winamp. Put simply, I had to convince the player to decode to 22KHz mono when running under Linux and I could run stereo 44KHz with winamp.

      Still, I suppose it may have been a soundcard (Yamaha opl3-sa3, iirc) and drivers issue?

      --
      Slackware user since 1997.
  50. Microsoft Called.... by raehl · · Score: 2, Insightful

    They said they were never your cycles in the first place.

  51. Let's go back to assembly, non-PNP, and text mode! by WoTG · · Score: 2, Insightful

    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.

  52. Re:Get a clue! by packeteer · · Score: 2, Informative

    You think marketing departments need features to sell an product. Marketing's job is to sell regardless of what they are given by the programmers, they will hype up anything. Just becuase the retail box has a giant list of features doesn't mean the program is bloated.

    --
    unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
  53. Re:My memory Usage by swillden · · Score: 3, Interesting

    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.
  54. ummm... kernel compile? by rsw · · Score: 4, Insightful

    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?

  55. What kind of optimization? by DeadVulcan · · Score: 4, Insightful

    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.
  56. No. The features existed in 1991 and were faster! by Richard+Steiner · · Score: 3, Interesting

    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.
  57. Cylons? by wernst · · Score: 2, Funny

    Am I the only person who read this as "Where Have all the Cylons Gone?"

  58. Re:My memory Usage by TheGavster · · Score: 3, Insightful

    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".
  59. Typical overreaction. :-( by Richard+Steiner · · Score: 2, Interesting

    (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.
  60. Simple: The Law of Diminishing Returns by rm999 · · Score: 2, Informative

    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.

  61. Re:My memory Usage by bill_mcgonigle · · Score: 3, Informative

    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)
  62. What's slow, exactly? by Earlybird · · Score: 2, Interesting
    As the article points out, the user no longer has to wait for the word processor to catch up to their typing. So what are users waiting for these days?

    As for myself, I can tell you:

    • Browsing/rendering of web pages. I'm on a 10mbps broadband connection in Norway, and pages in the US still take an awful long time to download and render. European sites are usually much zippier.

    • Java GUI apps; specifically, Eclipse. Eclipse is actually pretty fast, although it's hampered by Windows' eager trim-process-working-set-on-minimize algorithm, which means that whenever you de-minimize the app after having had it minimized for a while, it will take up to a minute to un-swap.

    • Until a few weeks ago, Thunderbird. This is also hit by the above-mentioned swapping bug (which you can solve by placing the following in your user.js file: user_pref("config.trim_on_minimize", false);). Actually, Thunderbird is pretty slow overall.

    • LAN file transfer/browsing with Samba. 100mbps networks just aren't that fast anymore. Time to go 1000mbps.

    • Burning CDs/DVDs. Even with my 40X/4X burner it's a pain. The transfers are fast, but what the vendors never tell you is that the speed metric on the package doesn't include the huge overhead in starting and finalizing the burning.

    • Compiling stuff, of course.

    • Encoding movies, eg. DVD -> XviD backups for personal use. Where's a distributed cross-platform XviD encoder when you need one?

    • Tagging MP3 files with IDv2 over the LAN. Audio files badly need a metadata format that doesn't require rewriting the whole file.

    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.

  63. User experience of performance HAS improved by harlows_monkeys · · Score: 4, Interesting
    I disagree that the user experience of performance has not improved over the last 15 years. 15 years ago, I was using a Mac II.

    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.

  64. Thats easy by BCW2 · · Score: 3, Funny

    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.
  65. Re:Get a clue! by Fjornir · · Score: 3, Interesting

    Thanks for the link. Here's one from the jargon file about real programmers.

    The Story of Mel

    This was posted to Usenet by its author, Ed Nather
    (nather@astro.as.utexas.edu), on May 21, 1983.

    A recent article devoted to the macho side of programming
    made the bald and unvarnished statement:
    Real Programmers write in FORTRAN.
    Maybe they do now,
    in this decadent era of
    Lite beer, hand calculators, and "user-friendly" software
    but back in the Good Old Days,
    when the term "software" sounded funny
    and Real Computers were made out of drums and vacuum tubes,
    Real Programmers wrote in machine code.
    Not FORTRAN. Not RATFOR. Not, even, assembly language.
    Machine Code.
    Raw, unadorned, inscrutable hexadecimal numbers.
    Directly.
    Lest a whole new generation of programmers
    grow up in ignorance of this glorious past,
    I feel duty-bound to describe,
    as best I can through the generation gap,
    how a Real Programmer wrote code.
    I'll call him Mel,
    because that was his name.
    I first met Mel when I went to work for Royal McBee Computer Corp.,
    a now-defunct subsidiary of the typewriter company.
    The firm manufactured the LGP-30,
    a small, cheap (by the standards of the day)
    drum-memory computer,
    and had just started to manufacture
    the RPC-4000, a much-improved,
    bigger, better, faster -- drum-memory computer.
    Cores cost too much,
    and weren't here to stay, anyway.
    (That's why you haven't heard of the company,
    or the computer.)
    I had been hired to write a FORTRAN compiler
    for this new marvel and Mel was my guide to its wonders.
    Mel didn't approve of compilers.
    "If a program can't rewrite its own code",
    he asked, "what good is it?"
    Mel had written,
    in hexadecimal,
    the most popular computer program the company owned.
    It ran on the LGP-30
    and played blackjack with potential customers
    at computer shows.
    Its effect was always dramatic.
    The LGP-30 booth was packed at every show,
    and the IBM salesmen stood around
    talking to each other.
    Whether or not this actually sold computers
    was a question we never discussed.
    Mel's job was to re-write
    the blackjack program for the RPC-4000.
    (Port? What does that mean?)
    The new computer had a one-plus-one
    addressing scheme,
    in which each machine instruction,
    in addition to the operation code
    and the address of the needed operand,
    had a second address that indicated where, on the revolving drum,
    the next instruction was located.
    In modern parlance,
    every single instruction was followed by a GO TO!
    Put that in Pascal's pipe and smoke it.
    Mel loved the RPC-4000
    because he could optimize his code:
    that is, locate instructions on the drum
    so that just as one finished its job,
    the next would be just arriving at the "read head"
    and available for immediate execution.
    There was a program to do that job,
    an "optimizing assembler",
    but Mel refused to use it.
    "You never know where it's going to put things",
    he explained, "so you'd have to use separate constants".
    It was a long time before I understood that remark.
    Since Mel knew the numerical value
    of every operation code,
    and assigned his own drum addresses,
    every instruction he wrote could also be considered
    a numerical constant.
    He could pick up an earlier "add" instruction, say,
    and multiply by it,
    if it had the right numeric value.
    His code was not easy for someone else to modify.
    I compared Mel's hand-optimized programs
    with the same code massaged by the optimizing assembler program,
    and Mel's always ran faster.
    That was beca

    --
    I want a new world. I think this one is broken.
  66. TFA is a piece of junk by patio11 · · Score: 3, Insightful
    Something tells me the author has no clue how virus scanners actually work. Unless those games loading image files are loading them in a known macro-virus-prone format (and, I can say without fear of contradiction, WoW isn't parsing textures from .docs), the gigantic resource files will *never be passively scanned* because they are *incapable of being executed*.

    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).

  67. Re:Certainly not me :-) by KiltedKnight · · Score: 2, Informative
    He wasn't wasting the money. He's been going through so much code that was poorly written to begin with, takes hours to run, and has to upgrade its functionality.

    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
  68. I don't agree with this analysis... by Doppler00 · · Score: 2, Insightful

    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).

  69. Some small things to do - Win XP by guacamolefoo · · Score: 2, Informative

    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)

  70. Re:My memory Usage by mcrbids · · Score: 2, Insightful

    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.
  71. Contrary to a recent troll... by SanityInAnarchy · · Score: 2, Insightful

    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!
  72. and all that spyware by Anonymous Coward · · Score: 2, Insightful

    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.

  73. Re:The fastest system I ever owned... by drsmithy · · Score: 2, Informative
    A disk cache allows the machine to have more 'virtual' RAM than the machine physically contains

    No, a disk cache keeps frequently accessed data on permanent storage in RAM to make it quicker to access.

    What you buy from the RAMdisk is fast startup of any apps located in ram.

    Right, so you optimise the operation you'll only ever be performing *once* for the whole time you're using the app by wasting memory it could be using to do whatever it is that it does.

    Have you ever heard of "optimise for the common case" ?

    Of course, now you have two copies of the application in RAM - one on the RAMdisk, and one in system RAM executing - so you pay in RAM for what you gain in speed.

    Yes, and this is why (modern) disk caches and RAM disks are basically the same thing. A RAM disk makes accessing the app's data - executable,m libraries, etc - faster by copying it into RAM and executing it from there. But this us *also* exactly the same thing a disk cache does. So, you're sacrificing *twice* as much RAM as you need, just to make starting an application up faster (probably the most infrequent operation you'll ever perform within each application).

    Not to mention the time you use "precharging" the RAM disk is going to be *at best* the same amount of time you use starting the application for the first time and letting the disk cache do its work.

    You really need to read up on how disk caching works - there's a very good reason RAM disks aren't used much any more (there are a few - very few - situations where they can offer benefit, but optimising application startup times isn't one of them) and that's because on modern systems, disk caching gives a much bigger overall performance boost.