![]() |
![]() |
Startseite News   NDR-NKC ![]() ![]() ![]() NKC Emulator Z80 Section ![]() ![]() ![]() 68000 Section ![]() ![]() ![]() ![]() ![]() 8088 Section ![]() ![]() Bussysteme Stromversorgung Input / Output Grafikkarten Speicherkarten Massenspeicher Weitere Baugruppen Projekte Dokumentation Datenblätter Glossar Portraits Links Impressum |
Geschwindigkeit des BASIC Interpreters für Z80Das nachfolgend gezeigte Programm wird zur Vergleichsmessung verschiedener Computer aus den 80er Jahren verwendet. BeispielprogrammAls Beispiel habe ich zur Zeitmessung ein kleines Programm gewählt, welches fortlaufend neue Primzahlen berechnet und diese auf dem Bildschirm ausgibt. Umso größer die Zahlen werden desto länger dauert der Test für jede einzelne Primzahl. Die Ausführungszeit steigt schnell exponentiell an. Die nachfolgenden Messungen der Geschwindigkeit basieren jeweils auf exakt dem gleichen Programm - soweit dies mit dem betreffenden BASIC-Dialekt möglich ist.Dieses Programm bietet nur einen Anhaltspunkt und testet bei Weitem nicht alle Instruktionen und Funktionen des BASIC Interpreters. Ausgaben auf dem Bildschirm erfolgen relativ selten, eventuelle Verzögerungen durch die Hardware beeinflussen das Ergebnis nur wenig.10 PZ = 3 20 ANZ = 3 30 PZ = PZ + 2 40 DIV = 1 50 DIV = DIV + 2 60 IF DIV*DIV > PZ THEN GOTO 90 70 IF PZ/DIV = INT(PZ/DIV) THEN GOTO 30 80 GOTO 50 90 PRINT ANZ,PZ 100 ANZ = ANZ + 1 110 GOTO 30
ErgebnisseDie Tabellen zeigen die Rechenzeit bis zum Erreichen einer vorgegebenen Anzahl an berechneten fortlaufenden Primzahlen an. Die letzte Spalte der Tabelle zeigt das Verhältnis der Geschwindigkeit der getesteten Computer untereinander an, wobei der NKC als Referenz dient - Werte kleiner als 100 % sind schneller. NKC BASIC 1.3 für Z80Soweit mir bekannt ist wird jeder einzelne Buchstabe des Programms als ASCII-Zeichen im RAM-Speicher des Computers abgelegt, Optimierungen finden anscheinend nicht statt. Da der Interpreter den Quelltext immer wieder neu interpretieren muss, können sich kleine Änderungen in der Umsetzung auf die Geschwindigkeit der Ausführung auswirken.
Sinclair ZX Spectrum 48kDie verschiedenen Computer der Sinclair-Baureihe sind sehr speziell und auch nicht für ihre überragende Geschwindigkeit berühmt, eher für den seinerzeit sagenhaft günstigen Preis. Die Speicherung der BASIC Programme erfolgt nicht als reiner ASCII Text sondern in komprimierter Form. Die BASIC Schlüsselworte sind im Speicher als 1 Byte Tokens abgelegt. Programme auf dem ZX Spectrum sind also deutlich kleiner und sollten deshalb trotz der niedrigeren Taktfrequenz von 3,5 MHz schneller interpretiert werden können.
Fazit: Das ZX Spectrum Basic nutzt seine Möglichkeiten bei Weitem nicht aus. Dadurch dass die Performance mit dem Fortschritt der Berechnung deutlich absinkt ist anzunehmen, dass die Fließkomma-Berechnungen stärker ins Gewicht fallen und diese im ZX BASIC einfach schlecht programmiert sind. VergleichsprogrammNachfolgend das gleiche Programm mit der kürzest möglichen Umsetzung auf dem NKC. Obwohl die meiste Zeit des Programms mit der Ausführung der Multiplikationen und Divisionen verbraucht wird lässt sich trotzdem ein kleiner Vorteil bei der Geschwindigkeit feststellen.10 PZ=3:ANZ=3 30 PZ=PZ+2:DIV=1 50 DIV=DIV+2:IFDIV*DIV>PZ GOTO90 60 IFPZ/DIV=INT(PZ/DIV)GOTO30 70 GOTO50 90 PRINTANZ,PZ:ANZ=ANZ+1:GOTO30
|