[comp.arch] Benchmarking interactive software

peter@ficc.ferranti.com (Peter da Silva) (07/26/90)

At the speed computers run, the user-interface part of the code for WP
could probably be written mostly in Dartmouth Basic (that parsed expressions
by repeatedly scanning forwards and backwards for parentheses) and *still*
be fast enough that nobody would notice it. Sure, screen updates and
buffer handling should probably have a large assembly content on a machine
like an 8088, but I suspect that much of the delay would turn out to be
in block moves (and BitBlt on a bitmapped display)... which are likely to be
in assembly in any case.
-- 
Peter da Silva.   `-_-'
+1 713 274 5180.   'U`
<peter@ficc.ferranti.com>

jesup@cbmvax.commodore.com (Randell Jesup) (07/31/90)

In article <VKX4UHA@xds13.ferranti.com> peter@ficc.ferranti.com (Peter da Silva) writes:
>At the speed computers run, the user-interface part of the code for WP
>could probably be written mostly in Dartmouth Basic (that parsed expressions
>by repeatedly scanning forwards and backwards for parentheses) and *still*
>be fast enough that nobody would notice it. Sure, screen updates and
>buffer handling should probably have a large assembly content on a machine
>like an 8088, but I suspect that much of the delay would turn out to be
>in block moves (and BitBlt on a bitmapped display)... which are likely to be
>in assembly in any case.

	Don't forget the other reason to write in assembler, something that
many Unix programmers seem to have forgotten (amusing, since it was once
one of the advantages of Unix): space efficiency.  Memory is _not_ unlimited,
nor is it free (not even with VM).  Witness that a Unix Workstation using the
most recent Unix (SVR4), with X and OpenLook _requires_ 8 meg to use.  Without
OpenLook you can _almost_ use it in 4 meg, but it can be a bitch.  (I'm
referring to a specific implementation, others may take more or less.)  And
then of course any sizable application may want more...

	In the WP case, they wanted a BIG package to be usable in 512K or
a 1 meg machine with floppies (i.e. loading code off disk is slow).  (This
is the AmigaDos version I'm referring to.)

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"

peter@ficc.ferranti.com (Peter da Silva) (08/01/90)

In article <13533@cbmvax.commodore.com> jesup@cbmvax (Randell Jesup) writes:
> 	Don't forget the other reason to write in assembler, something that
> many Unix programmers seem to have forgotten (amusing, since it was once
> one of the advantages of Unix): space efficiency.

If you *really* want space efficiency the obvious thing to do is write in
Forth, or some other threaded language. Writing in assembler to save memory
is like writing in COBOL to improve readability. That way you retain quite
a high level of portability, you can still implement the critical code in
machine dependent fashion, and you save a *lot* more space than an assembly
implementation.

Alternatively: write the critical code in assembly, include a small Scheme
or other tiny interpreted language, and put most of the code in that. It'd
still be fast enough for humans and you'd save simply gobs of RAM.

Assembly should be the last resort, not the first.

(slams on the size of SVR4 deleted... funny, I was just complaining about
 that in comp.sys.amiga.tech)
-- 
Peter da Silva.   `-_-'
+1 713 274 5180.   'U`
<peter@ficc.ferranti.com>