http://t3x.org/t3x/0/stats.html

T3X

T3X/0

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.

 
Target
Word
Size
Hello World
Size (Bytes)
Compiler
Size (Bytes)
 
TCVM 16-bit 134 20715 byte code
CP/M-Z80 16-bit 1905 35153
DOS-8086 16-bit 1215 29273
FreeBSD-386 32-bit 1316 38804 statically linked
Unix-3861 32-bit 7596 41676 dynamically linked
Unix-6861 64-bit 9272 55248 dynamically 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 43.

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 compared to the other Z80 CPUs might be due to the file system on an SRAM card.

I have no idea why the TCVM is so slow on the ARMv7.

A modern CPU and architecture (x86-64) delivers more than an order of magnitude more thruput per clock speed compared to the Z80 or 8088.

Target CPU Speed File System Time Rel. Lines/Min. Lines/MHz
CP/M Z80 4.00 MHz SRAM card 9m20.00s 1.00 254 64
DOS 8088 4.77 MHz CF card 8m55.00s 1.05 273 57
DOS V20 4.77 MHz CF card 8m31.00s 1.10 281 59
CP/M Z80 7.40 MHz CF card 5m37.00s 1.67 434 59
CP/M eZ80 18.40 MHz SD card 51.00s 11.00 2,464 134
TCVM on ARMv7 900.00 MHz SD card 5.23s 107.00 23,900 27
FreeBSD ARMv7 900.00 MHz SD card 0.63s 892.00 199,000 221
TCVM on x86-64 1000.00 MHz SSD 0.85s 661.00 164,000 164
FreeBSD x86-64 1000.00 MHz SSD 0.15s 3747.00 933,000 933

ARMv7 running T3X/0 version 20a, eZ80 running version 36, all others version 12.


contact  |  privacy