среда, 12 августа 2009 г.

x200s/x220. Powersave. Firefox.

(Продолжение. Начало статьи)

Update:
  • После перехода на Ubuntu 9.04 и firefox 3.5 Shiretoko внесены исправления в скрипт: изменено имя программы с firefox на firefox-3.5.
  • Проверено на Ubuntu 10.04
Если в компьютере установлен SSD накопитель, то ничего этого делать не нужно

Firefox 3.x использует базу данных sqlite, которая генерирует очень много событий записи на диск.

Чтобы уменьшить обращения к диску, необходимо сделать следующее:

  1. Разместить firefox cache в оперативной памяти

    Для этого:
    1. Перенести в RAM директорию /tmp

    2. Перенести cache firefox в /tmp/firefox.
      В строке адреса пишем about:config
      Далее нажимем правуб кнопку мыши и добавляем строковую переменную:
      browser.cache.disk.parent_directory
      и присвоить ей значение:
      /tmp/firefox

  2. Размещаем весь профиль пользователя в RAM.

    Этот способ более радикальный, нежели предыдцщий, но и, соответственно, более сложный. Поэтому распечатайте эту инструкцию или скопируйте ее на диск и откройте в OO Writer.
    1. Перенести в RAM директорию /tmp

    2. Создать каталог для профиля пользователя в firefox
      $mkdir /tmp/firefox
    3. Создать новый профиль. Я назвал его RAM и разместил в каталоге /tmp/firefox
      $/usr/lib/firefox/firefox -ProfileManager

    4. Закрываем firefox.
    5. Скопировать текущий профиль в каталог /tmp/firefox
      $shopt -s dotglob $cp -a ~/.mozilla/firefox/40ev7h33.default/* /tmp/firefox
      Расположение текущего профиля указано в ~/.mozilla/firefox/profiles.ini
    6. Создаем скрипт /etc/init.d/ff-profile.sh:
      #! /bin/sh
      # This script copies the firefox user profile
      #  from the directory $DSK_PROFILE
      #  to the directory $RAM_PROFILE
      #  after the computer power up
      #  and back before power down
      # 
      #  v0.12 - minor changes for firefox control firefox cache
      #  v0.11 - minor changes for firefox 3.5 and Ubuntu 9.04
      #  v0.1 - initial in Ubuntu 8.04
      
      # define firefox name
      #FF=firefox-3.5
      FF=firefox
      
      # define how old cache in days
      OLDCACHE=2
      
      # where firefox profile
      RAM_PROFILE=/tmp/firefox
      DSK_PROFILE=/root/.mozilla/$FF/ram.profile
      
      FLG_DEBUG=1
      OUT_DEBUG=/var/log/ff-profile.tst
      
      shopt -s dotglob
      
      case "$1" in
        start)
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: ff-profile.sh started" >> $OUT_DEBUG
          fi
          if ! [ -d $RAM_PROFILE ] 
            then 
              mkdir -p $RAM_PROFILE
              chmod 777 $RAM_PROFILE
                if [ $FLG_DEBUG -eq 1 ]
                  then echo "$1: creating  $RAM_PROFILE" >> $OUT_DEBUG
                fi
          fi
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: copy $DSK_PROFILE/* $RAM_PROFILE " >> $OUT_DEBUG
          fi
          # remove old cache
          find $DSK_PROFILE/Cache* -mtime +$OLDCACHE -exec rm {} \;
      
          cp -a $DSK_PROFILE/* $RAM_PROFILE >> $OUT_DEBUG
          ;;
        stop)
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: ff-profile.sh stoped" >> $OUT_DEBUG
          fi
          if ! [ -d $DSK_PROFILE ] 
            then 
              mkdir -p $DSK_PROFILE
              chown 777 $DSK_PROFILE
              if [ $FLG_DEBUG -eq 1 ]
                then echo "$1: creating  $DSK_PROFILE" >> $OUT_DEBUG
              fi
          fi
          if [ $FLG_DEBUG -eq 1 ]
            then echo "$1: copy $RAM_PROFILE/* $DSK_PROFILE " >> $OUT_DEBUG
          fi
          cp -a $RAM_PROFILE/* $DSK_PROFILE
          ;;
      esac
      
      shopt -u dotglob
      
      exit 0
    7. Назначаем ему права, пользователя, и делаем на него ссылку автозапуска и остановки
      cd /etc/init.d $sudo chmod 755 ff-profile.sh $sudo chown root:root ff-profile.sh $sudo update-rc.d ff-profile.sh defaults
    8. Открываем редактор меню (System->Preferences->Main Menu).
      Заменяем команду запуска firefox (Application->Internet->Firefox Web Browser->Properties) на /usr/lib/firefox/firefox -P RAM

      Перезагружаем компьютер. Проверяем работу.

  3. В Firefox в меню Правка -> Настройки -> Защита снять галку с пункта "Блокировать сайты, подозреваемые в имитации других сайтов"

  4. Динамические сайты с flash анимацией и java-script вносят большую долю в увеличение потребления энергии.

    Для блокировки на страницах java - установить в firefox adblock plus и заблокировать в нем показ соответствующих элементов http страниц.

    Для блокировки flash - установить Flashblock

    Это позволяет сэкономить до 1,5 Вт.

Комментариев нет:

Отправить комментарий