Jump to content

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

From ArchWiki
< Firefox (Русский)
Состояние перевода: На этой странице представлен перевод статьи Firefox/Profile on RAM. Дата последней синхронизации: 30 ноября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

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

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

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

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

## Размещение кэша только в оперативной памяти

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

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

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

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

## Размещение профиля в оперативной памяти с помощью инструментов

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

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

- profile-sync-daemon - для получения дополнительной информации обратитесь к статье wiki Profile-sync-daemon;
- firefox-syncAUR - достаточно для пользователя с одним профилем; использует скрипт и службу systemd, аналогичные приведённым ниже.

## Размещение профиля в оперативной памяти вручную

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

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

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

### Скрипт

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

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

Убедитесь, что установлен rsync, и создайте файл:

    ~/.local/bin/firefox-sync.sh

    #!/bin/sh

    static=static-$1
    link=$1
    volatile=/dev/shm/firefox-$1-$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
    $ ls ~/.mozilla/firefox/
    $ ~/.local/bin/firefox-sync.sh xyz.default

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

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

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

#### systemd

Создайте следующий файл:

    ~/.config/systemd/user/firefox-profile@.service

    [Unit]
    Description=Firefox profile memory cache

    [Install]
    WantedBy=default.target

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=%h/.local/bin/firefox-sync.sh %i
    ExecStop=%h/.local/bin/firefox-sync.sh %i

Затем выполните daemon-reload для пользовательского экземпляра systemd и запустите/включите пользовательскую службу `firefox-profile@xyz.default.service`.

#### Задание cron

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

    $ crontab -e

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

    */30 * * * * ~/.local/bin/firefox-sync.sh xyz.default

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

    0 */2 * * * ~/.local/bin/firefox-sync.sh xyz.default

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

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

    $ echo 'bash -c "~/.local/bin/firefox-sync.sh xyz.default > /dev/null &"' | tee -a ~/.bash_logout ~/.bash_login

Примечание Вы можете использовать `~/.bash_profile` вместо `~/.bash_login` т.к. bash будет читать только первый из них, если они оба существуют и могут быть прочитаны.

Для zsh используйте `~/.zlogin` и `~/.zlogout`:

    $ echo 'bash -c "~/.local/bin/firefox-sync.sh xyz.default > /dev/null &"' | tee -a ~/.zlog{in,out}

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

- tmpfs (Русский)

Category:

- Web browser (Русский)

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