Compiler Statistics

Object Code Size

The size of the object code of the various T3X/0 back ends is illustrated in the following table by the examples of a simple Hello World program as well as the compiler executable itself. The "Hello World" program, of course, mostly measures the size of the run time library.

Hello World
Size (Bytes)
Size (Bytes)
TCVM 16-bit 134 21003 byte code
CP/M 16-bit 1892 34834
DOS 16-bit 1205 29181
Unix1 32-bit 7596 42040 dynamically linked
FreeBSD 32-bit 1316 39140 statically linked
  1. "Unix" is FreeBSD 12.4 in this case, but using the generic Unix backend.

The compiler executables are those of T3X/0 version 12.

Compilation Speed

The following table summarizes the time the compiler requires to self-compile on various systems. It is interesting that T3X/0 compiles slightly more lines per MHz on the Z80 than on the 8088. I would have guessed that the 8088 is much faster, because it has built-in multiplication and division and is 16-bit internally. The superior speed of the 4MHz Z80 might be due to the file system on an SRAM card. A modern CPU and architecture delivers more than an order of magnitude more thruput per clock speed.

Target CPU Speed File System Time Lines/Min. Lines/MHz
CP/M Z80 4.00 MHz SRAM card 9m20.00s 254 64
DOS 8088 4.77 MHz CF card 8m55.00s 273 57
DOS V20 4.77 MHz CF card 8m31.00s 281 59
CP/M Z80 7.40 MHz CF card 5m37.00s 434 59
FreeBSD TCVM1 1000.00 MHz SSD 0m0.85s 164,000 164
FreeBSD x86-64 1000.00 MHz SSD 0m0.15s 933,000 933

1 on an x86-64

contact  |  privacy