• Was denkt Ihr? 12

    Das Ergebnis ist nur für Teilnehmer sichtbar.

    Wollte ich schon immer mal wissen: Welcher Computer ist schneller, ein CBM 610 von 1982 oder ein C128 von 1985. Beide laufen mit zwei MHz. Wer zählt in Basic schneller von 1-1000?

    Also beide mit einfacher For-Next-Schleife parallel gestartet.

    Meine Erwartung hat sich bestätigt :). Was denkt Ihr? Stimmt ab🤓.

  • Wie war das noch...

    Muss der C128 für I/O Zugriffe auf 1MHz runterschalten?

    Dann dürfte der langsamer sein.

    Falls nicht, dürfte der CBM 610 langsamer sein, da dir krude Banking-Technik bei jedem Datentransfer zwischen den Banks Zeit verballert.

    +++ ATH

  • Je nach Variante unterscheidet sich die Laufzeit deutlich.

    Schon das Setzen eines Kommas oder nicht, oder statt des Kommas ein Semikolon lässt die Laufzeit deutlich variieren.

    Im Vice64-Emulatur hab ich mal ein paar Laufzeittests durchgespielt:


    Deine Variante zuerst:


    5 t0=ti

    10 for x=1 to 1000

    20 print x,

    30 next x

    50 t1=ti

    55 t2=t1-t0

    56 print:print

    60 print "laufzeit in sek: "; t2/60


    LAUFZEIT IN SEK: 21.933333


    Dann hab ich nur das Komma durch ein Semikolon ersetzt:


    20 print x;

    LAUFZEIT IN SEK: 16.1


    Nun habe ich das Semikolon komplett weggelassen:

    20 print x

    LAUFZEIT IN SEK: 46.4333334


    Lässt man die Print-Ausgabe weg und schreibt die Schleife in eine Zeile, dann erhöht sich die Geschwindigkeit rapide:

    10 for x=1 to 1000: next x

    LAUFZEIT IN SEK: 1.38333333


    Das lässt sich noch optimieren, wenn man die For-Next so schreibt und das x bei next weglässt:

    10 for x=1 to 1000: next

    LAUFZEIT IN SEK: 1.08333333


    Du siehst, es kommt auf jedes Komma an ;)

    "Link arms,don't make them." - Du musst Gott für alles danken, sogar für einen Franken

  • Nur zählen, oder auch ausgeben? Wenn letzteres, im 40- oder im 80-Zeichen-Modus beim C-128?

    Auch Ausgeben im 80 Zeichenmodus

    Dann wird der C-128 recht langsam sein. Das Bottleneck ist dabei die Ausgabe auf dem 80 Zeichen-Bildschirm, wo ‒ wenn ich es richtig erinnere ‒ jeder Schreibzugriff auf das VDC-RAM durch mehrere Registerzugriffe auf den VDC erfolgen muss.

  • Ich könnte aus dem Bauch nicht sagen was schneller ist. Der C128 hat langsame 80 Zeichen Ausgabe. Der C610 hat langsame Variablen.


    Wenn es 1000 prints sind sind mind 975 single line scrolls drin. Das dürfte die Performance bestimmen. Also vlt doch der C610 schneller...?