Firefox (Русский)/Profile on RAM (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Firefox on RAM. Дата последней синхронизации: 25 марта 2016. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Предположим, что есть свободная память, тогда поместив кэш или полный профиль Firefox в оперативную память, мы получим значительные приемущества. Несмотря на то что выберите, частичный перенос является улучшением сам по себе, а последний может сделать Firefox ещё более отзывчивым, по сравнению со стандартной конфигурацией. Полученные приемущества:

  • уменьшение дисковых операций чтения/записи;
  • повышенная отзывчивость;
  • многие операции в Firefox, такие как быстрый поиск и история запросов, происходят почти мгновенно.

Для этого мы можем использовать свойства tmpfs.

Поскольку данные, помещённые в оперативную память, не сохраняются после выключения компьютера, нам понадобится сценарий, отвечающий за синхронизацию с диском перед завершением работы системы, если желательно сохранить данные (что, скорее всего, актуально в случае перемещения профиля). С другой стороны, перемещение только кэша является быстрым, менее полным решением, которое немного ускорит работу, но кэш Firefox при каждой перезагрузке будет очищен.

Примечание: Кэш хранится отдельно от профиля Firefox, в каталоге по умолчанию (/home/$USER/.mozilla/firefox/): профиль находится по умолчанию в /home/$USER/.cache/mozilla/firefox/<profile>. Это также относится и к Chromium и к другим браузерам. Поэтому разделы #Утилиты для размещения профиля в RAM и #Поместите профиль в RAM вручную не имеют дело с перемещением кэша и синхронизацией, только с настройками профиля. Для большей информации смотрите Преимущества psd. Anything-sync-daemon может быть использован также как 2 Вариант для каталогов кэша.

Переместить только кэш в Оперативную память

Когда загружаются страницы, они могут быть помещены в кэше, так что их не нужно загружать для повторного отображения. Также кэшируется электронная почта и новости, сообщения и вложения. Firefox может быть настроен на использование в качестве кэш-памяти только оперативной памяти. Файлы настроек, закладки, расширения и т.д. будут записаны на диск, как обычно. Для этого:

  • откройте в адреснойстроке about:config
  • установите browser.cache.disk.enable на "false" (двойным щелчком по строке)
  • проверьте что значение browser.cache.memory.enable установлено в "true" (значение по умолчанию)
  • добавьте запись (щелчёк правой кнопкой мышки->Создать->Целое) browser.cache.memory.capacity и установите размер в KB который вы хотите запасти, или в -1 для автоматического определения размера кэша. (Пропуск этого шага имеет тот же эффект, что и установка в значение -1.)

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

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

Утилиты для размещения профиля в RAM

Перенесите профиль браузера в tmpfs для глобального улучшения отклика браузера. Ещё одним приемуществом является снижение операций ввода/вывода, из которых накопители SSD извлекут максимум выгоды.

Используйте активные скрипты управления для максимальной надёжности и простоты использования. Некоторые доступны в AUR.

Поместите профиль в RAM вручную

Прежде чем начать

Перед потенциальным риском профиля Firefox, сделайте резервную копию для быстрого восстановления. Замените xyz.default на название вашего профиля и используйте tar для создания резервной копии:

$ tar zcvfp ~/firefox_profile_backup.tar.gz ~/.mozilla/firefox/xyz.default

Скрипт

Адаптирован из verot.net Ускорение Firefox с помощью tmpfs

Скрипт сначала переместит профиль Firefox на новое статическое место, создаст подкаталог в /dev/shm, и мягкую ссылку, а затем заполнит его содержимым профиля. Замените выделенную секцию. Единственное значение которое необходимо изменить, опять же xyz.default.

Убедитесь, что установлен rsync и сохраните скрипт в ~/bin/firefox-sync, например:

firefox-sync
#!/bin/sh

static=main
link=xyz.default
volatile=/dev/shm/firefox-$USER

IFS=
set -efu

cd ~/.mozilla/firefox

if [ ! -r $volatile ]; then
	mkdir -m0700 $volatile
fi

if [ "$(readlink $link)" != "$volatile" ]; then
	mv $link $static
	ln -s $volatile $link
fi

if [ -e $link/.unpacked ]; then
	rsync -av --delete --exclude .unpacked ./$link/ ./$static/
else
	rsync -av ./$static/ ./$link/
	touch $link/.unpacked
fi

Закройте Firefox, сделайте скрипт выполняемым и протестируйте его:

$ killall firefox firefox-bin
$ chmod +x ~/bin/firefox-sync
$ ~/bin/firefox-sync

Запустите Firefox еще раз, чтобы оценить результаты. Во второй раз запустится скрипт, он сохранит профиль из RAM путем копирования его обратно на диск.

Автоматизация

Заметив, что если вы забудите синхронизировать профиль, то это может привести к плохим последствиям. Так что будет логично автоматизировать действия.

Задание cron

Действуйте пользовательским cron используя таблицу crontab:

$ crontab -e

Добавьте строку, чтобы запускать сценарий каждые 30 минут,

*/30 * * * * ~/bin/firefox-sync

или добавьте следующую, чтоб выполнять каждые 2 часа:

0 */2 * * * ~/bin/firefox-sync

Синхронизация при входе/выходе

Используя bash, добавьте скрипты в файлы входа/выхода:

$ echo '~/bin/firefox-sync' | tee -a ~/.bash_logout ~/.bash_login >/dev/null
Примечание: Вы можете использовать ~/.bash_profile вместо ~/.bash_login т.к. bash будет читать только первый из них, если они оба существуют и могут быть прочитаны.

Смотрите также