
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo, > Der Faktor 250 bezieht sich auf 250 mal schnelleres Assembler als Basic auf der 1.1. Der Faktor 30 bezieht sich auf Basic der 2.0 und Micro im Vergleich zur 1.1. Wie schnell jetzt Assembler auf der 2.0 und Micro oder auch der Open Controller ist steht dagegen noch aus. Alle Vergleiche ziehe ich wiedermals zur 1.1. ich habe grade übrigens was ganz interessantes mit dem Oszi gemessen. Ich habe ein sehr einfaches Programm genommen, dass Sprünge und Schreiben auf IO Ports durchführt: BASIC++: define a as port[1] a = on do a = on a = off loop Assembler: (CCASM): .code entry: lda #$FF sta 5 lloop: lda #$FF sta 1 lda #$00 sta 1 bra lloop .end und AS05: org $101 lda #$FF sta 5 lloop: lda #$FF sta 1 lda #$00 sta 1 bra lloop Ich habe den Code jeweils auf der 2.03 und 1.1 (M Unit) getestet (2.03 BPP und CCASM; 1.1 BPP und AS05). Dabei sind folgende interessanten Ergebnisse gekommen: V 2.03 BASIC++: ca. 94 µs CCASM: ca. 2 µs V 1.1 (keine HW Veränderungen) BASIC++: ca. 3,2 ms AS05: ca. 9,1 µs In diesem Beispiel ist CCASM etwa 47 mal schneller als Basic. Auf der 1.1 ist der Unterschied sogar fast 352 mal so groß. Vergleicht man beide Basic Versionen (gleicher Tokencode) so scheint die 2.03 rund 34 mal schneller zu sein und etwa um den Faktor 10,3 langsamer als AS05. Das besterErgebnis erzielte der Assembler auf der 2.03: mit etwa 2 µs ist es etwa 4,5 bis 4,6 mal schneller als Assembler auf der 1.1. Ich finde das Ergebniss soweit schon recht interessant, wenn man bedenkt, dass der Unterschied zwischen Basic auf der V 2.03 und Assembler auf der 1.1 in diesem Falle nur etwa den Faktor 10 beträgt. Dagegen erstaunlich finde ich, dass der Unterschied zwischen CCASM und AS05 mit 4,5 bis 4,6 kleiner ausfällt als (zumindest von mir) gedacht. Der Graph auf dem Oszi bei BASIC++ zeigt übrigens, dass der Sprung einen erheblichen Geschwindigkeitsverlust darstellt. Wie die Unterschiede in anderen Programmen aussehen habe ich nicht getestet. Das Beispiel kann daher nur bedingt als Referenz genommen werden. Gruß, Stefan Meine Homepage: http://www.fdos.de |
| Antwort schreiben |