Что такое куча копирования при записи Zygote? - PullRequest
0 голосов
/ 24 мая 2018

Документация для памяти Android описывает параметр кучи Zygote (при просмотре выделений) в профилировщике Android Studio как:

Куча копирования при записи, в которой процесс приложенияВ системе Android разветвляется

Я понимаю, как процессы разветвляются из Zygote и что классы инфраструктуры хранятся и передаются здесь, но мне не ясно, что это на самом деле означает - Что копируется?

Означает ли это, что когда класс изменяется или загружается в этой области, он выполняет копирование при записи так же, как вы можете реализовать коллекцию в Java, или это как-то связано с процессом разветвления?

1 Ответ

0 голосов
/ 24 мая 2018

Все процессы, основанные на Zygote, имеют одинаковые страницы памяти.

Эти страницы не копируются, вместо этого все связано с одной страницей памяти.Это уменьшает объем оперативной памяти, используемой всеми процессами на основе Zygote.

Если один из этих процессов записывает новые данные на такую ​​страницу, страница автоматически копируется до того, как происходит запись (потому что в противном случаепамять всех вилок будет изменена).

Этот механизм называется копирование при записи .

...