Virtueller Android-Speicher und Paging

8

Kann jemand einen Link zur Android-Speicherverwaltung ausarbeiten oder bereitstellen? Ich bin verwirrt über Android Virtual Memory Schema. Wie funktioniert Paging in Android? Ohne Festplatte, wie machen sie das? Haben sie Caching?

    
agent.smith 13.04.2011, 19:09
quelle

2 Antworten

4

Hier sind einige Links zur Speicherverwaltung auf Android

Ein ausführlicher Beitrag Ссылка

Und ein netter Blogbeitrag zur Speicheranalyse Ссылка

Wie man Speicherlecks vermeidet Ссылка

    
Yekmer Simsek 13.04.2011 19:50
quelle
0

Der Linux-Kernel und der jvm sollten als Äpfel und Orangen behandelt werden. Die beiden zu verwirren kann katastrophal sein.

Zum Beispiel ist der virtuelle Speicher des Linux-Kernels im Wesentlichen eine Auslagerungsdatei und setzt keine Grenzen für die individuelle Prozessgröße, was zu einem "Thrash" oder endlosen Austausch führt, wenn die Datei voll ist.

Im Gegensatz dazu legt der jvm (der nur ein anderer Linux-Prozess ist) eine gemeinsame maximale Größe für seine Anwendungen fest (z. B. 256 MB). Android-Apps laufen im Allgemeinen in ihren eigenen jvms und verhindern, dass irgendein gegebenes jvm "thrasht". Stattdessen wird der GC einen OOM werfen und beenden.

Android wird weiterhin Apps beenden (jvms, die Aufgaben enthalten, die Gruppen von Aktivitäts-Threads sind), wenn der virtuelle Speicher des Kernels erschöpft ist, und sie später neu starten, falls erforderlich. Es kann immer noch einfrieren (thrash), aber nicht so oft wie z. eine unbeaufsichtigte Linux-Datenbank oder ein Webserver.

Die Lösung für einen thrashenden (eingefrorenen) Android ist genau das gleiche wie ein Thrash-Linux-Server. Bounce (Zyklus die Macht). Weil es ein Linux-Server ist.

Es ist etwas tiefgründig zu bedenken, dass Android der Welt Millionen vollständig zusammenhängender, aber meist untätiger pervasiver Linux-Server zur Verfügung gestellt hat, die endlose Schwärme von Multithread-Prozessen hosten können (jvms sind nur ein Typ).

Es hat die Knochen des ultimativen Supercomputers, der selbst das aufwendigste Rechenzentrum in den Schatten stellt.

Das heißt nicht einmal, dass die meisten Androiden Parallelprozessoren (GPUs) haben, die 100-mal schneller sind als ihre CPUs, die wiederum nur im Leerlauf sitzen. Außer ein paar Gamer, die wissen, wie man sie feuert.

Nur als Übersicht gedacht, es gibt bereits ausgezeichnete Links zu diesem Thema.

    
Dominic Cerisano 13.07.2015 19:46
quelle

Tags und Links