Android виртуальная память и пейджинг - PullRequest
8 голосов
/ 13 апреля 2011

Может кто-нибудь разработать или предоставить ссылку на управление памятью Android.Я запутался в схеме виртуальной памяти Android.Как пейджинг в Android?Без жесткого диска, как они это делают?У них есть кеширование?

Ответы [ 2 ]

4 голосов
/ 13 апреля 2011

Вот несколько ссылок об управлении памятью на android

Подробный пост http://mobworld.wordpress.com/2010/07/05/memory-management-in-android/

И хороший пост в блоге для анализа памяти http://android -developers.blogspot.com/2011/03/memory-analysis-for-android.html

Как избежать утечек памяти http://android -developers.blogspot.co.uk / 2009/01 / избежать-памяти-leaks.html

0 голосов
/ 13 июля 2015

Ядро Linux и JVM должны рассматриваться как яблоки и апельсины.Смешение двух может привести к катастрофическим последствиям.

Например, виртуальная память ядра Linux - это, по сути, файл подкачки, и он не устанавливает ограничений на размер отдельного процесса, что приводит к "перебоям" или бесконечной перестановке, когда файлfull.

В отличие от этого, jvm (который является просто еще одним процессом linux) устанавливает общий максимальный размер для своих приложений (например, 256 МБ).Приложения Android, как правило, запускаются в своих собственных jvms, предотвращая «порку» любого данного jvm.Скорее, сборщик мусора выбросит OOM и завершит работу.

Android будет дополнительно уничтожать приложения (jvms, содержащие задачи, которые представляют собой группы потоков операций) при исчерпании виртуальной памяти ядра, и при необходимости перезапускать их позже.Он все еще может зависать (трэш), но не так часто, как, например.необслуживаемая база данных Linux или веб-сервер.

Решение для молотого (замороженного) андроида точно такое же, как для молотого сервера Linux.Отказов (цикл питания).Потому что это сервер linux.

Глубоко предположить, что Android подарил миру миллионы полностью подключенных, но в основном простаивающих широко распространенных серверов linux, которые могут принимать бесконечные потоки многопоточных процессов (jvms - это только один тип),

В нем заложен суперкомпьютерный компьютер, который затмевает даже самый сложный центр обработки данных.

Это даже не говорит о том, что большинство андроидов имеют параллельные процессоры (GPU), которые в 100 раз быстрее, чем их процессоры, опять же, просто бездействуя.За исключением нескольких геймеров, которые знают, как их запустить.

Просто задуманный как обзор, в этой теме уже есть отличные ссылки.

...