|slowness explained (Gates Law)|
Message #18 Posted by Vincze on 8 Aug 2007, 12:02 p.m.,
in response to message #14 by Thomas Okken
My friends, I take it you never hear of Gates Law (or maybe you forget about)? Meaning hardware seem to run slower even though processor, memory, etc is faster. It all due to programming. It happen in three steps normally.
First step is that program is written in assembler. You have to be really dumb to write slow assembler code, but it can be done, but very very hard as assembler is very efficient.
Next step, is applications are written in some other language that has more overhead (like C with a computer). They use more memory than assembler because of reuse of processor resources , subroutines, etc. program are larger, because more memory available.
And step three introduces new programming language (C++ or C#) with even more lack of efficiency because of excessive reuse of objects, managing more overhead operations, and it gobbles up even more memory and more processor. Programmer though not care, because he knows he has more memory and faster processor to work with, so this okay to him (or her... sorry ladies)
The reason that developers though go through these steps though is to make more features to us. Take a look at an x386 computer running DOS6, and a Pentium4 running Vista "double dog" ultimate version with "flux capacitor". Does pentium 4 computer boot up faster than x386 computer running DOS6? Nem! x386 boot up much faster, but it also have much less features. Now we must figure out what we want. Do we want more feature, or fastest booting machine? Same true with calculator. Do you want 48GX with more memory, better graphics, more prompts, but take longer to get to solution, or do you want to have a simpler calculator that is a little more hard to use, but very fast at getting you answer because it managing less overhead?
Take for example, I have program that I load on my 15C last night that calculate roots of a polynomial. I also can use 48gx to do. With units both starting off, it is quicker on 15C to find roots than on 48gx (assuming I already enter program on 15C and I am at the input screen for the 48gx.) On 15C, I enter values into stack and hit R/S, on 48gx, I have to manipulate input screen, navigate a few times, and then press solve. Much more key strokes with 48gx, and more overhead make 48gx all work and no play (and slower). ;)