UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

150 lines (94 loc) 13.8 kB
**Состояние перевода:** На этой странице представлен перевод статьи [Firefox on RAM](/index.php/Firefox_on_RAM "Firefox on RAM"). Дата последней синхронизации: 25 марта 2016\. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=Firefox_on_RAM&diff=0&oldid=427726). Предположим, что есть свободная память, тогда поместив кэш или полный профиль [Firefox](/index.php/Firefox_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Firefox (Русский)") в оперативную память, мы получим значительные приемущества. Несмотря на то что выберите, частичный перенос является улучшением сам по себе, а последний может сделать Firefox ещё более отзывчивым, по сравнению со стандартной конфигурацией. Полученные приемущества: * уменьшение дисковых операций чтения/записи; * повышенная отзывчивость; * многие операции в Firefox, такие как быстрый поиск и история запросов, происходят почти мгновенно. Для этого мы можем использовать свойства [tmpfs](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)"). Поскольку данные, помещённые в оперативную память, не сохраняются после выключения компьютера, нам понадобится сценарий, отвечающий за синхронизацию с диском перед завершением работы системы, если желательно сохранить данные (что, скорее всего, актуально в случае перемещения профиля). С другой стороны, перемещение только кэша является быстрым, менее полным решением, которое немного ускорит работу, но кэш Firefox при каждой перезагрузке будет очищен. **Примечание:** Кэш хранится **отдельно** от профиля Firefox, в каталоге по умолчанию (`/home/$USER/.mozilla/firefox/`): профиль находится по умолчанию в `/home/$USER/.cache/mozilla/firefox/<profile>`. Это также относится и к Chromium и к другим браузерам. Поэтому разделы [#Утилиты для размещения профиля в RAM](#.D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8F_.D0.B2_RAM) и [#Поместите профиль в RAM вручную](#.D0.9F.D0.BE.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D0.B5_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B2_RAM_.D0.B2.D1.80.D1.83.D1.87.D0.BD.D1.83.D1.8E) **не имеют дело** с перемещением кэша и синхронизацией, только с настройками профиля. Для большей информации смотрите [Преимущества psd](/index.php/Profile-sync-daemon_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9F.D1.80.D0.B5.D0.B8.D0.BC.D1.83.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.B0_psd "Profile-sync-daemon (Русский)"). [Anything-sync-daemon](/index.php/Anything-sync-daemon "Anything-sync-daemon") может быть использован также как 2 Вариант для каталогов кэша. ## Contents * [1 Переместить только кэш в Оперативную память](#.D0.9F.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D1.8C_.D1.82.D0.BE.D0.BB.D1.8C.D0.BA.D0.BE_.D0.BA.D1.8D.D1.88_.D0.B2_.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.B8.D0.B2.D0.BD.D1.83.D1.8E_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D1.8C) * [2 Утилиты для размещения профиля в RAM](#.D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8F_.D0.B2_RAM) * [3 Поместите профиль в RAM вручную](#.D0.9F.D0.BE.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D0.B5_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B2_RAM_.D0.B2.D1.80.D1.83.D1.87.D0.BD.D1.83.D1.8E) * [3.1 Прежде чем начать](#.D0.9F.D1.80.D0.B5.D0.B6.D0.B4.D0.B5_.D1.87.D0.B5.D0.BC_.D0.BD.D0.B0.D1.87.D0.B0.D1.82.D1.8C) * [3.2 Скрипт](#.D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82) * [3.3 Автоматизация](#.D0.90.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F) * [3.3.1 Задание cron](#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_cron) * [3.3.2 Синхронизация при входе/выходе](#.D0.A1.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.BF.D1.80.D0.B8_.D0.B2.D1.85.D0.BE.D0.B4.D0.B5.2F.D0.B2.D1.8B.D1.85.D0.BE.D0.B4.D0.B5) * [4 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5) ## Переместить только кэш в Оперативную память Когда загружаются страницы, они могут быть помещены в кэше, так что их не нужно загружать для повторного отображения. Также кэшируется электронная почта и новости, сообщения и вложения. Firefox может быть настроен на использование в качестве кэш-памяти только оперативной памяти. Файлы настроек, закладки, расширения и т.д. будут записаны на диск, как обычно. Для этого: * откройте в адреснойстроке `about:config` * установите `browser.cache.disk.enable` на "false" (двойным щелчком по строке) * проверьте что значение `browser.cache.memory.enable` установлено в "true" ([значение по умолчанию](http://kb.mozillazine.org/Browser.cache.memory.enable)) * добавьте запись (щелчёк правой кнопкой мышки->Создать->Целое) `browser.cache.memory.capacity` и установите размер в KB который вы хотите запасти, или в -1 для [автоматического](http://kb.mozillazine.org/Browser.cache.memory.capacity#-1) определения размера кэша. (Пропуск этого шага имеет тот же эффект, что и установка в значение -1.) Основными недостатками этого метода является то, что содержание недавно просмотренных веб-страниц потеряется, если работа браузера завершена аварийно, либо после перезагрузки, и что параметры должны быть настроены для каждого пользователя индивидуально. Избежание первого недостатка заключается в том, чтобы использовать [демон всеобщей синхронизации](/index.php/Anything-sync-daemon "Anything-sync-daemon") или аналогичный периодический скрипт синхронизации, так что кэш будет копироваться на диск регулярно. ## Утилиты для размещения профиля в RAM Перенесите профиль браузера в [tmpfs](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)") для глобального улучшения отклика браузера. Ещё одним приемуществом является снижение операций ввода/вывода, из которых [накопители SSD извлекут максимум выгоды](/index.php/Solid_State_Drives_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.A0.D0.B0.D1.81.D0.BF.D0.BE.D0.BB.D0.BE.D0.B6.D0.B8.D1.82.D0.B5_.D1.87.D0.B0.D1.81.D1.82.D0.BE_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B5.D0.BC.D1.8B.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D1.8B_.D0.B2_.D0.BE.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D0.B9_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D0.B8 "Solid State Drives (Русский)"). Используйте активные скрипты управления для максимальной надёжности и простоты использования. Некоторые доступны в AUR. * [profile-sync-daemon](https://aur.archlinux.org/packages/profile-sync-daemon/) - для получения дополнительной информации обратитесь к статье wiki [Profile-sync-daemon](/index.php/Profile-sync-daemon_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Profile-sync-daemon (Русский)"); * [firefox-sync](https://aur.archlinux.org/packages/firefox-sync/) ## Поместите профиль в RAM вручную ### Прежде чем начать Перед потенциальным риском профиля Firefox, сделайте резервную копию для быстрого восстановления. Замените `xyz.default` на название вашего профиля и используйте `tar` для создания резервной копии: ``` $ tar zcvfp ~/firefox_profile_backup.tar.gz ~/.mozilla/firefox/*xyz.default* ``` ### Скрипт <small>*Адаптирован из [verot.net Ускорение Firefox с помощью tmpfs](http://www.verot.net/firefox_tmpfs.htm)*</small> Скрипт сначала переместит профиль Firefox на новое статическое место, создаст подкаталог в `/dev/shm`, и мягкую ссылку, а затем заполнит его содержимым профиля. Замените выделенную секцию. Единственное значение которое необходимо изменить, опять же `xyz.default`. Убедитесь, что установлен [rsync](/index.php/Rsync "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](/index.php/Cron_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Cron (Русский)") используя таблицу `crontab`: ``` $ crontab -e ``` Добавьте строку, чтобы запускать сценарий каждые 30 минут, ``` */30 * * * * *~/bin/firefox-sync* ``` или добавьте следующую, чтоб выполнять каждые 2 часа: ``` 0 */2 * * * *~/bin/firefox-sync* ``` #### Синхронизация при входе/выходе Используя [bash](/index.php/Bash_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Bash (Русский)"), добавьте скрипты в файлы входа/выхода: ``` $ echo '*~/bin/firefox-sync*' | tee -a ~/.bash_logout ~/.bash_login >/dev/null ``` **Примечание:** Вы можете использовать `~/.bash_profile` вместо `~/.bash_login` т.к. bash будет читать только первый из них, если они оба существуют и могут быть прочитаны. ## Смотрите также * [tmpfs (Русский)](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)")