Da ich immer wieder so viele falsche Informationen über ZRAM sehe habe ich beschlossen mal etwas Klarheit in die ganze Materie zu bringen
Oft wird über einen Performance Vorteil gesprochen, da ZRAM schneller als Swap ist. Das ganze mag für normale PCs stimmen aber wir sind hier mit Android unterwegs und da sieht das ganze etwas anders aus!
Erst einmal eine kurze Feststellung für alle, die noch nicht so lange in der Android Szene unterwegs sind:
ZRAM = ramzswap = Compcache
Um ZRAM genauer zu erklären müssen erstmal andere Begriffe genauer geklärt werden:
Swap kann man mit der Auslagerungsdatei unter Windows vergleichen werden. Wird der Arbeitsspeicher (RAM) zu voll kann der PC die Daten, die gerade nicht aktiv gebraucht werden (z.B. Hintergrundanwendungen) auslagern um so wieder RAM frei zu räumen. Dazu werden diese Daten auf eine Festplatte geschrieben. Bei Bedarf können diese Daten dann einfach wieder von dort aus gelesen werden. Selbst die schnellste SSD ist aber langsamer als der Arbeitsspeicher. Unter Android gibt es Swap nicht!
Bei ZRAM werden nicht benötigte Speicherressourcen komprimiert und dann in einen fest reservierten Bereich im RAM verschoben (ZRAM). Also eine Art Swap Partition im Arbeitsspeicher.
Dadurch ist mehr Ram frei, da die Daten dann nur noch ca. 1/4 des ehemaligen Speicherbedarfs haben. Allerdings muss die CPU dadurch mehr arbeiten, da sie die Daten komprimieren muss (oder auch wieder entpacken wenn sie wieder gebraucht werden). Der Vorteil hierbei liegt ganz klar in der Geschwindigkeit. Da die Swap Partition sich im RAM befindet ist diese viel schneller als eine Swap Partition auf einer Festplatte.
An und für sich eine ganz tolle Sache. Aber Android besitzt keine Swap Partition und daher bringt ZRAM unter Android keinen Performance Gewinn wie es bei einem normalen PC der Fall wäre.
Beim normalen PC würde das folgendermaßen aussehen:
Swap = Auslagerungsdatei (auf Festplatte) –> Langsam
ZRAM (Swap im RAM) –> Schneller als Swap
RAM –> Schnell
Bei Android gibt es keine Swap Partition und daher bringt ZRAM auch keinen Performance Boost.
Das einzige was ZRAM bringt ist “mehr” RAM. Durch das komprimieren “vergrößert” sich sozusagen der verfügbare Arbeitsspeicher. Das ist auf Geräten mit sehr wenig RAM (<256MB) auch ziemlich nützlich. Das S2 hat aber 1GB und die reichen mehr als aus. Da muss nicht künstlich auf 1,5GB hochgepusht werden.
Denn aktiviert man ZRAM hat das auch 2 Nachteile. Das komprimieren und dekomprimieren verbraucht CPU Time, welche wiederum höheren Stromverbrauch zur Folge hat.
Grob kann man also sagen (Für Geräte mit mehr als 512MB RAM):
Ohne ZRAM: +CPU Performance | +Battery | -RAM
Mit ZRAM: -CPU Performance | -Battery | +RAM
Für Geräte mit zu wenig RAM also durchaus sinnvoll. Aber wer ballert beim S2 schon sein kompletten RAM voll und braucht dann immer noch mehr?
Überprüfen ob ZRAM läuft kann man im Terminal mit
free oder cat /proc/meminfo
ZRAM aus:
ZRAM an:
Weiterführende Infos:
Swap and Compcache – CyanogenMod Wiki