[net.lang.st80] CADMUS Port at Dortmund

georg@unido.UUCP (06/20/85)

	     CADMUS Port at Dortmund: Progress Report II
	     -------------------------------------------

We have now ported BS II to UNIX V.2 with virtual memory (CADMUS 9230:
10 MHz 68010, zero waitstates, 2 MB real memory).

Also we have succeeded in migrating larger parts of the Smalltalk
graphic primitives copyBits, drawLoop and scanCharacters from the
host processor to the bitmap local 68000 processor. Now these are executed
in parallel to the interpreter loop. As a consequence scanCharacters
is about 80 % of Dorado, cf. below. Also the form editor performs
at an interactively acceptable speed.

Moreover the main interpreter loop has been optimized by hand on the
machine level. Altogether the performance rating has been impoved
from previously 13 to 18.

Below follow the new benchmarks.

Harald Ganzinger    harald@unidoi5.uucp
Georg Heeg          georg@unido.uucp

Informatik V, Universitaet Dortmund, West Germany


						   % Dorado    seconds

[load an instance variable, 20 times]                 5.8       4.76
[load 1 as a temp, 20 times]                          6.0       4.6
[load 0@0, 20 times]                                  8.4       4.64
[load 1, 40 times; send ==, 20 times]                 5.4       9.12
[load nonRefcounted literal, 20 times]                5.5       5.0
[load literal indirect (overflow refct), 20 times]    9.0       5.32
[store into an instance variable, 20 times]           3.4       5.08
[store into a temp, 20 times]                         3.6       4.8
[add 3 + 4, 10 times]                                 2.4       6.52
[test 3 < 4, 10 times]                                3.0       5.96
[multiply 3 * 4, 10 times]                            5.2       7.66
[divide 3 by 4, 10 times]                            42.5       1.32
[add 20000 + 20000, 10 times]                       104.0       0.62
[add 80000 + 80000, 10 times]                       121.7       0.06
[activate and return, 32K times]                     11.3       8.8
[short branch on false, 10 times]                     2.7       4.5
[simple whileLoop, 10000 times through]               3.0      14.48
[send #at: 20 times (to an array)]                   13.8       1.36
[send #at:put: 20 times (to an array)]               12.7       1.72
[send #at: 20 times (to a string)]                    3.8       4.86
[send #at:put: 20 times (to a string)]                4.4       5.2
[send #size 20 times (to a string)]                  18.9       0.76
[create 3@4, 10 times]                               26.5       1.38
[execute ReadStream next, 20 times]                  15.4       5.8
[execute ReadWriteStream nextPut:, 20 times]         15.4       6.72
[send ==, 20 times]                                  11.6       5.14
[send #class 20 times (to a point)]                  18.5       0.68
[execute blockCopy: 0, 20 times]                      5.9       8.22
[evaluate the block: (3+4), 20 times]                 5.8       4.28
[create 20 uninitialized points]                      4.7       7.42
[execute aPoint x, 10 times]                          7.5       4.62
[load thisContext, 20 times]                          8.4       4.66
[send #basicAt: 20 times (to a set)]                  3.9       4.72
[send #basicAtPut: 20 times (to a set)]               4.2       5.12
[3 perform: #+ with: 4, 20 times]                     3.3       8.8
[replace characters in a string]                    570.0       0.18
[convert 1 to floating point, 20 times]              14.3       1.76
[add 3.1 plus 4.1, 20 times]                          6.6       3.7

[call bitBLT 10 times]                               11.5       3.48
[scan characters (primitive text display)]           82.1       0.38

[read and write class organization]                   7.6      15.88
[print a class definition]                            9.6       8.88
[print a class hierarchy]                            11.8       8.48
[find all calls on #printStringRadix:]                8.4      21.02
[find all implementors of #next]                     10.0       6.46
[create an inspector view]                           12.4       7.32
[compile dummy method]                               10.4      21.72
[decompile class InputSensor]                         8.7      14.2
[text keyboard response using lookahead buffer]      19.2       4.42
[text keyboard response for single keystroke]        17.6      12.42
[display text]                                       18.7       6.82
[format a bunch of text]                             16.8       6.82
[text replacement and redisplay]                     24.6      17.14

Performance Rating                                   17.95