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

83 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. 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 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
    7. 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?
    8. 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

    9. 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 ?
    10. 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

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

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

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

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

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

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

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

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

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

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

  18. 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.
  19. 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.
  20. 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 zCyl · · Score: 5, Funny

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

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

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

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

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

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

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

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

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

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

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

  29. 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!
  30. 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?!
  31. 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.

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

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

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

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

  37. 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.
  38. 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.
  39. 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...

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

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

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

  43. 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.
  44. 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?

  45. 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.
  46. 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.
  47. 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".
  48. 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)
  49. 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.

  50. 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.
  51. 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.
  52. 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).