waqur: (Default)
[personal profile] waqur
Если под виндой:
1) установить драйвер рамдиска с возможностью загрузки образа с винта при старте ОС и выгрузки образа обратно на винт при останове ОС, с автоматическим возвратом к предыдущему снэпшоту при аварийном прерывании записи, типа вот этого: http://memory.dataram.com/products-and-services/software/ramdisk
2) создать рамдиск размером 512Мб (например X:),
3) перенести на него профили Firefox'а (C:\Users\User\AppData\{Local,Roaming}\Mozilla\Firefox -> X:\Firefox\profile_{local,roaming}), а также исполняемые файлы (C:\Program Files (x86)\Mozilla Firefox -> X:\Firefox\bin),
4) со старых локаций создать точки присоединения (NTFS junctions) на диск X: (консольная команда mklink /J),
то Firefox будет работать намного, намного быстрее. Субъективно раза в 2 быстрее в свободном режиме и раз в 10 быстрее, когда другие приложения интенсивно что-то читают с диска или пишут на диск.

У Firefox'а есть старая проблема: подтормаживание на autovacuuming of sqlite3 database:
http://jasonlefkowitz.net/2011/10/dear-mozilla-fix-your-damn-browser-already/
Обычно оно происходит в самый неподходящий момент, например, при наборе URL'а или прокрутке страницы.
Перенос на рамдиск здорово помогает с этим.

Недостатки: на 512 Мб меньше свободной оперативной памяти, на 5 секунд дольше происходит загрузка и останов ОС. Поскольку браузер — уже давно самое главное приложение в системе, я думаю, с этими недостатками можно смириться.

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

Date: 2012-05-31 11:09 am (UTC)
From: [identity profile] dibrov-s.livejournal.com
А не под виндой как?
Я в линухах под хромиумом работаю, именно по причине медлительности лиса.

Date: 2012-05-31 01:08 pm (UTC)
From: [identity profile] waqur.livejournal.com
В линухах надо делать всё вручную, на скриптах.

При загрузке машины:
1) Создать блочный рамдиск фиксированного размера в ядре. Это делается ещё до старта ядра, в контексте загрузчика (grub, lilo или что там у Вас). ramdisk_size=N (в килобайтах).
2) Создать ноду для рамдиска в /dev . Нода будет называться ram0 (если корневая ФС при загрузке это initramfs или раздел HDD) или ram1 (если загрузка идёт с initrd), мажорный/минорный номер см. в LANANA device list. Хотя в нормальном дистре об этом должен заботиться udev или как оно там сейчас называется.
3) Скопировать файл-образ с винта на рамдиск (dd). Можно с потоковой распаковкой (gzip -d -c)
4) Смонтировать файл-образ на рамдиске (mount).
5) Создать симлинки для профиля, ведущие на рамдиск. Возможно, для исполняемых файлов тоже (понятия не имею, как работает автоообновление FF на линуксе). Предварительно снести всё, что мешает созданию симлинков (rm -rf).

При останове машины:
1) Снести с винта симлинки, ведущие на рамдиск
2) Размонтировать файловую систему на блочном рамдиске. Если есть несогласные - перемонтировать в режиме readonly.
3) Скопировать файл-образ с рамдиска на винт (dd) в *.tmp. Можно с потоковым сжатием (gzip -1 -c) Сделать ему fsync в конце.
4) sync всей файловой системы, где лежит образ. *.tmp и не-*.tmp меняются местами.
5) sync всей файловой системы, где лежит образ. Удалить *.tmp

Для подготовки образа:
1) Создать пустой файл размером 512 метров с помощью dd.
2) Назначить ему loopback-устройство (с помощью losetup).
3) Смонтировать loopback-устройство (mount), создать файловую систему (mke2fs).
4) Скопировать на новый диск профили файерфокса и возможно его исполняемые файлы и либы
5) sync, umount, освободить loopback-устройство
6) Сжать образ при необходимости и положить туда, где его ищет загрузочный скрипт

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

На этой странице

Автор стиля

Развернуть

No cut tags
Page generated 2026-03-01 12:49 am
Powered by Dreamwidth Studios