Оперативная память очень важна для производительности Linux по нескольким причинам:
Кэша. В большинстве случаев Linux работает без свободной памяти. Если некоторая память не используется приложениями, она используется для кэширования, что ускоряет процесс. Так что память никогда не теряется. Если приложениям требуется больше памяти, кэши освобождаются, поэтому они никогда не будут препятствовать запуску приложений, требующих больше оперативной памяти. Но, конечно, чем больше вы можете кэшировать, тем лучше.
Многие приложения (особенно настольные) требуют много памяти для запуска в настоящее время. Это неудивительно - большинство настольных систем (или даже смартфонов) в наши дни имеют гораздо больше памяти, чем Rapsberry Pi. Например, веб-браузеры (даже легковесные) будут использовать десятки МБ памяти, как только вы откроете более крупный веб-сайт.
Каждому приложению требуется некоторое количество памяти. Таким образом, чем больше приложений вы запускаете, тем больше памяти они используют.
Таким образом, вы всегда хотите иметь как можно больше памяти ARM. Но у GPU есть свои потребности в зависимости от того, какие функции вы хотите от него.
Версия 256MB
Для более старых RaspberryPi с 256 МБ ОЗУ доступно 4 разделения:
240/16 - Максимальный размер ОЗУ, который может получить ARM (240 МБ), с использованием памяти GPU. Это лучше всего подходит для обычных вычислений, когда вам не нужна трехмерная графика или аппаратное ускорение видео. Он имеет достаточно памяти для разрешения кадрового буфера 1920x1200x16bpp. Хотя 32bpp также работает, это не рекомендуется, так как оставляет очень мало свободного места для GPU.
224/32 - Это устарело в пользу разделения 240/16. Он имеет встроенное 3D и аппаратное декодирование видео, но так как памяти недостаточно для его фактического использования, нет смысла его использовать. Если у вас нет проблем с разделением 240/16 или вы не хотите использовать 32-битный кадровый буфер с самым высоким разрешением. Возможно, он будет удален в будущем.
192/64 - для использования аппаратного ускорения видео или 3D-графики требуется как минимум 64 МБ разделенного графического процессора. Возможно, вам не хватит памяти графического процессора для аппаратного ускорения воспроизведения видео с самым высоким разрешением или если вам нужно много памяти графического процессора для таких вещей, как текстуры.
128/128 - Максимальный объем ОЗУ ОЗУ. Используйте его, когда вам нужно много памяти для 3D-видеокарты и аппаратного ускорения воспроизведения видео в высоком разрешении. Это разделение необходимо для правильной работы RaspBMC или для воспроизведения полноформатного видеоконтента с помощью omxplayer без проблем.
512MB версия
Новые версии RaspberryPi имеют 512 МБ оперативной памяти. У вас есть 4 дополнительных сплита, разработанных для этой версии:
- 496/16 и 448/64 - как
240/16
и 192/64
разделенные для 256 МБ соответственно, но с 256 МБ больше оперативной памяти, доступной для ARM. Поскольку GPU имеет только 16 МБ / 64 МБ или ОЗУ, все ограничения из 240/16
/ 192/64
все еще применяются.
- 384/128 - аналогично разделению 128/128 для 256 МБ - вы должны получить все функции графического чипа, но с разумным объемом памяти ARM. Вероятно, это будет самый универсальный сплит прямо сейчас.
- 256/256 - Некоторая бонусная память графической карты, если она вам действительно нужна, например, для больших текстур и подобных вещей. Хотя 256 МБ памяти ARM больше, чем вы могли бы иметь в более старом RaspberryPis, я не думаю, что этот будет использоваться во многих случаях.
Динамические расколы
Новые версии пакета прошивки удаляет большинство start_*.elf
файлов, оставляя только start.elf
и start_cd.elf
(и fixup*.elf
файлы, которые добавлены). Отныне вам не нужно вручную выбирать правильный start_*.file
. Вместо этого вы должны использовать gpu_mem*
опции в config.txt
файле, чтобы выбрать, сколько памяти уходит на GPU. Оставшаяся память будет выделена для ARM. Для этих опций должна быть возможность использовать произвольное число в следующем диапазоне:
**512MB of RAM**: 16M-448M
**256MB of RAM**: 16M-192M
Хотя в настоящее время нет жестко закодированных значений разделения, большая часть информации для остальной части этого ответа должна быть действительной, когда вы пытаетесь определить, какой объем памяти должен быть выделен для графического процессора.
start_cd.elf
и fixup_cd.elf
файлы являются урезанными версиями соответствующих файлов, используются только тогда, когда gpu_mem=16
.
Использование одной SD-карты на 256 и 512 МБ версии
Если вы используете один образ SD-карты для разных версий RaspberryPi, вы можете использовать gpu_mem_256
и gpu_mem_512
параметры. Первый будет использоваться только на версии 256 МБ, а второй - только на 512 МБ версии платы.