RAM, Prozessor oder Java? – die Langsamkeit des Raspberry Pis

Derzeit bin ich in Nesselwang. Zweimal im Jahr komme ich in das Ferienhaus um Großputz zu machen, den Garten zu pflegen, die Terrasse zu reinigen und Dinge zu ersetzen. Klar, kann man nicht den ganzen Tag putzen und so habe ich noch etwas Freizeit. Seit drei Jahren nehme ich immer einen Raspberry Pi mit. Er reicht für einfaches Surfen aus und die letzten drei Male habe ich auch mit Libreoffice an meinen Manuskripten geschrieben. Trotzdem ist es doch sehr zäh und das will ich mal beleuchten.

Rein technisch sieht es nicht mal so schlecht aus. Ich habe einen Raspberry Pi 3 mit 1.200 MHz, also noch nicht das neueste Modell 3B+ mit 1,4 GHz. Als die erste Generation herauskam, das war der Raspberry Pi 1 mit 700 MHz, habe ich die FAQ durchgelesen und da hat einer gefragt wie schnell der Prozessor im Vergleich zur x86 Architektur wäre. Die Antwort war, das er so schnell wäre wie ein Pentium-II mit 300 MHz. Der Pi 3 hat vier Kerne, eine höhere Taktfrequenz und einen 64 anstatt 32 Bit Prozessor, der schneller rechnet. Die ct‘ ermittelte beim Test des Raspis 3 die sechsfache Geschwindigkeit des ersten Pi, bei dem schon der grafische Desktop wirklich zäh zu bedienen ist. Auf einen Kern reduziert, denn viele Programme nutzen eben nur einen Kern, wäre das die 1,5-fache Performance bei gleicher Taktrate und wenn man den höheren Takt dazunimmt sind es dann die 2,6-fache Leistung. Damit wäre mein Raspberry Pi 3 so schnell wie ein Pentium III mit 750 MHz.

Nun hatte ich von 1999 bis 2002 einen AMD K6 mit 550 MHz, 128 MB RAM und einer 10 GB Platte. Rein technisch hat der Raspberry Pi eine höhere Geschwindigkeit, achtmal mehr RAM und selbst die SD-Karte ist 3,2-mal größer als damals die Festplatte. Trotzdem war das Arbeiten mit dem Rechner viel flüssiger. Warum also ist der Raspberry Pi so lahm? Der Pi setzt ja schon einen sehr ressourcenschonenden Desktop ein – der sieht auch nicht viel besser aus als die Windows 98 Oberfläche die ich damals hatte.

Einen Hinweis liefert schon das Browsen. Es ist ja nicht so, das es allgemein langsamer geworden ist. Meine eigene Webseite, aber auch der WordPress Blog sowie Jonathans Space Report laden schnell. Das sind Seiten die sich kaum seit Jahren verändert haben. Zahlreiche andere gebookmarkte Startseiten wie Spacenews.com oder Spaceflightnow laden sehr zäh weil sie zig Plugins nachladen. Noch schlimmer sind kommerzielle Seiten wie von Bild oder anderen Seiten mit Werbung. Trotzdem habe ich die Plugins für Werbung abgeschaltet, denn sie halten nun genauso auf, aber so komme ich wenigstens bei den anderen Seiten schneller durch, denn Adblocker halten auch das Laden des Textes auf. Und wenn die Seite nichts für mich ist, breche ich eh das Laden ab. Anders sieht das bei kommerziellen Websites aus. Die Couch war als ich ankam durchgelegen, also habe ich über Amazon eine neue bestellt. Amazon ist mit dem Raspberry Pi genauso flüssig bedienbar wie mit einem größeren Rechner, wenn auch etwas langsamer im Seitenaufbau, was aber auch an der Internetverbindung (6 anstatt 50 Mbit/s) liegen kann. Ebenso merke ich bei Google keine Beeinträchtigung.

Ich benutze Chromium, das Gegenstück zu Chrome unter Debian. Zum einen weil es bequem ist – über das Google Konto werden so automatisch Passwörter und Bookmarks synchronisiert und ich muss nicht in einer Liste nachschauen. Zum andern weil es kaum Alternativen gibt. Bis diese Woche hatte noch noch Firefox auf dem Rechner. Doch er ist nicht schneller und die neueste Version liefert bei vielen Seitenaufrufen nur eine Crash-Fehlermeldung, so habe ich ihn deinstalliert. Die anderen Browser die es über das Software-Verzeichnis gibt wie Dillo, Epiphany, Netsurf haben eine Oberfläche die noch hinter meinem ersten Browsererfahrungen zurück hinkt – das war 1998 der Internet Explorer 1,6. Sie sind schnell, doch viele Zeiten zeigen sie nicht an oder haben Darstellungsprobleme. Netsurf z.B. selbst bei meiner Seite aus reinem HTML das Leerzeichen mehrfach angezeigt werden.

Besser klappts mit Libreoffice. Es startet schnell und ist flüssig bedienbar. Beim korrigieren meiner beiden letzten Manuskripte habe ich keine Nachteile feststellen können, mit Ausnahme dessen das ich die verbesserten Rechtschreibkorekturen nicht nutzen kann. Dazu später mehr. Libreoffice ist auch ressourecenschonender – wenn ich die Temperaturanzeige als Basis nehme (die Prozessorauslastung ist nicht so gut geeignet, weil wenn ich den Taskmanager aufrufe, das Programm das bisher Last erzeugte, den Fokus verliert und die Auslastung absinkt. Im Ruhezustand hat der Pi eine Temperatur von 45 bis 47°C, derzeit beim Schreiben des Artikels mit offenem, aber ruhenden Chromium sind es 52 bis 54 Grad. Beim Surfen mit Chromium kann das auf 83°C steigen, was die Auslastung des Prozessors anzeigt. Kurz: heutige Webseiten brauchen viel mehr Prozessorressourcen.

Doch es ist nicht nur die Prozessorlast. Wenn ich den Taskmanager bei diesen beiden offenen Programmen öffne, dann belegen die Programmen 886 von 932 MB RAM und noch bedeutsamer, der Gesamtspeicher den alle Programm benötigen und der eben nur als virtueller Speicher zu Verfügung steht, erreicht alleine bei den Prozessen mit mehr als 100 MB schon 4 GB. Das ist das die meiner Ansicht nach größere Einschränkung. Der Pi hat einfach zu wenig Speicher. Das ist dem Konzept geschuldet und war auch der Grund warum ich mir keinen Pi 3+ angeschafft habe. Der Chipsatz adressiert maximal 1 GB. Der ARM-Propzessor ist leicht austauschbar, aber nicht der Chipsatz. Das das RAM der Knackpunkt ist, zeigt sich auch wenn man in Chromium mehrere Tabs öffnet, dann ist die Sanduhr nämlich kräftig am Drehen und wenn man den Taskmanager offen hat sieht man wie die Prozessorlast immer noch bei 20 bis 35 % liegt, aber eben der Gesamtspeicherverbrauch ansteigt. So wundert es auch nicht das die meisten Alternativen zum Raspberry Pi mehr RAM haben, typisch 2 GB, teilweise 4 GB. Als ich mehrere Tabs öffnete, um für den Artikel zu recherchieren fror schließlich dann auch der Raspi ein, obwohl nur je ein Tab aktiv war.

Warum aber dieser enorme Ressourcenverbauch? Meiner Ansicht nach hat es einen Grund. Denn wie schon gesagt Libreoffice läuft schnell. Meine selbst mit Lazarus kompilierten Programme auch, wenn man auch die Geschwindigkeit nicht mit einem PC vergleichen kann. Ich halte Java für den Übeltäter. Java, bzw. im Broser Javascript ist meinen Erfahrungen nach nicht nur extrem langsam, sondern verbraucht auch enorm viel Speicher. Als Java rauskam, das war so um 1996, trat es mal an die Softwarewelt zu revolutionieren. Es sollte vom Mikrocontroller bis zum Server laufen und im WDR Computerclub kam jemand mit einem Ring, auf dem ein Microcontroller war auf dem Java lief. Heute ist davon nichts geblieben. Selbst auf dem PC ist Java langsam. Ich habe auf dem PC als populärstes Javaprogramm den Mediathekviewer. Der wird von Generation zu Generation langsamer. Ich hatte ihn auch auf dem Raspberry Pi. 2016 konnte ich damit noch Videos von den Mediatheken herunterladen, auch wenn man Sekunden nach jedem Tastendruck warten musste bis er reagierte. In den letzten beiden Jahren ging dies gar nicht mehr und dieses Jahr stürzte er schon beim Start ab. Schaut man in den Taskmanager so lädt er zuerst Java das 1.1 GB belegt, so viel Speicher gibt es aber gar nicht irgendwann während des Bootens kackt dann alles ab. Den Mediathekviewer habe ich nicht aktualisiert, aber Java über die üblichen Updates mit apt-get. Ich hatte mal Java 7 und seit Java 8 läuft er nicht mehr.

Inzwischen habe ich Java und den Medthekviewer gelöscht. Beim Browsen nützt das wegen des vom Browser interpretierten Javascripts nichts. Analoges erlebte ich als in Libreoffice das LanguageTool aktualisieren wollte. Auch hier 1 Minute lang keine Reaktion, dann eine Java Exception. Offensichtlich hat Libreoffice noch eine zweite, unabhängige Javalaufzeit-Umgebung.

Was gäbe es an Lösungen? Die für mich offensichtlichste wäre eine Raspberry Pi Distribution. Die Pi Foundation hat zwar ein angepasstes Betriebssystem, derzeit aktuell „Jessie“, aber das basiert auf Debian. Ich denke man hat nur den Kernel auf den SOC angepasst und die ganzen Packete sind eben Standard Debian Programme, gedacht für größere Rechner. Sehr gut tun würde ein Browser der schneller als Chrome ist, aber auch eine korrekte Darstellung bietet, anders als Netsurf & Co.

Die zweite Lösung ist eine Alternative. Prinzipell gibt es zwei Lösungen. Das eine sind andere Einplatinencomputer wie der Tinkerboard oder Odroid, oft auf Basis ähnlicher ARM-Prozessoren. Sie haben oft mehr RAM, schnellere CPU und bessere Schnittstellen. Dafür sind sie teurer 70 bis 120 Euro. Dazu kommen noch Gehäuse, Stromversorgung und SD-Karte oder eMMC. Mein derzeitiger Favorit isst der Rock64 den es zum einen mit 4 GB gibt, daneben hat er eine gute Schnittstellenausrüstung und ist mit 76 Euro die preiswerteste Alternative. Was mich dran stört ist das bei den offiziellen OS sich kein Linux findet, das ich kenne. Android kenne ich zwar vom Smartphone, doch da habe ich noch nie ein Terminalwindow gehabt oder einen Text eingegeben.

Die zweite Alternative wäre ein tragbarer PC. Wenn ich von mir ausgehe, scheiden Notebooks aus. Sie leben nicht lange genug und ich komme bei nur 25 % Sehschärfe mit Brille nicht mit den kleinen Displays zurecht. Klein-Formrechner wie Intels NUC haben meist Atoms, die dann auch schnarchlangsam sind und mit schnelleren Prozessoren kommt man dann schon auf mehrere Hundert Euro.

Es muss ja nicht neu sein. Im Prinzip würde ein Refurbished oder Retail PC, also ein ausgemusteter Geschäftsrechner für mich reichen. Nur haben die einen anderen Nachteil: sie sind zu schwer. Ich habe aufgrund meiner Sehbehinderung kein Auto, das heißt alles was ich mitnehme muss ich tragen können und es sind 2,5 Kilometer vom Bahnhof bis zur Siedlung. Ich könnte ihn hier lassen. Doch dann gibt es ein anderes Problem: ich benutze ihn dann zweimal im Jahr für je eine Woche. Da kann ich mir ausrechnen wann die Batterie leer ist und wie oft ich ihn bis dahin genutzt habe. Trotzdem erscheint mir das derzeit als die beste Lösung. Vielleicht bestelle ich mir zum Frühjahrsaufenthalt einen Rechner und lasse ihn gleich hierher liefern, dann spare ich mir den Transport und er bleibt hier. Alternativ kaufe ich einen teureren Mini-PC den ich dann auch bei meinem Kunden nutze. Dort werden die Einschränkungen immer größer und man hat mir schon angekündigt das ich bald wählen muss zwischen „normaler Benutzer mit Internetzugriff“ oder „Administrator ohne Internetzugriff“. Für Bastelobjekte habe ich immer noch eine Raspi Pi 1 und 2.

One thought on “RAM, Prozessor oder Java? – die Langsamkeit des Raspberry Pis

  1. Hintergrund der Probleme mit dem Pi 3:
    1. das SOC VideoCore 4 limitiert die Geschwindigkeit und die Bandbreite, mit der die ARM CPU auf RAM, I/O und Video Interfaces zugreifen kann.
    2. viele ARM SOCs binden das DRAM mit einem 16Bit Interface an. PCs haben das DRAM um 2000 mit einem 32 bzw. 64Bit Interface angesprochen, abhängig von den eingesteckten DIMMs.
    3. der Cache von ARM CPUs arbeitet auf virtuellen Adressen, der Cache von x86 CPUs aus historischen Gründen auf physikalischen bzw. übersetzten Adressen. Bei ARM CPUs muß bei einem Kontextwechsel im Regelfall der Inhalt des Cache weggeschmissen werden. Bei Embedded Applikationen geben sich die Entwicker viel Mühe die Anzahl der Kontextwechsel zu minimieren, und versuchen z.T. die wichtigsten Programme auf disjunkte Adressbereiche zu legen.
    4. viele GUI Software arbeitet heute mit Antialiasing. Das kostet Performance, und ist zumindest unter Linux nicht mit vertretbarem Arbeitsaufwand abzustellen.
    5. aktuelle Linux Distributionen enthalten heute einige Resourcen fressende Daemonen, die um 2000 nicht üblich waren, wie z.B.: systemd, auditd, smartd, udisksd, irqbalance, dbus, NetworkManager, ModemManager, gvfsd, dconf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.