04.05.2009
Небольшая оптимизация Firefox в linux

В последнее время firefox стал жутко раздражать своей тормознутостью. В основном эти тормоза заключались в крайне медленном запуске и закрытии браузера. Да и вообще, скорость работы браузера не устраивала. Даже как-то не обращал внимания когда это началось. А я привык к тому что у меня в linux все программы - даже обычно задумчивый Open Office стартуют если не почти мгновенно, то хотя бы очень быстро.
Вначале сделал фаерфоксу небольшую оптимизацию подкручивая настройки в about:config. Толку мало. Тормоза браузера все равно остались. Порыскал на Ubuntu и нашел способ который привел фаерфокс в состояние свежеустановленного браузера. Таким мой браузер был, вероятно, год назад. Это был небольшой скрипт благодаря которому немного повысилась скорость работы firefox и ощутимо уменьшилось время запуска.
Вначале сделал экспорт списка rss-лент в плагине Sage и экспорт закладок. На всякий случай. Затем закрыл фаерфокс. Это нужно сделать обязательно и до выполнения скрипта.
Ввел в терминал вот эти строки:
1 | for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done |
..и получил в выводе ошибку. Что-то там про невозможность выполнения команды из-за отсутствия установленного sqlite.
Это неудивительно. Ведь я не устанавливал sqlite. Просто было интересно. Люди пишут что работает сразу, значит sqlite у всех кроме меня установлен. ![]()
Установил, как писалось в ошибке, sqlite3 - sudo apt-get install sqlite3
Снова запустил скрипт..
Вот и все. Фаерфокс как новенький. Вопреки опасениям, ни закладки, ни кукисы не исчезли.
Особо не углублялся в технические подробности. Насколько понял , суть такой оптимизации фаерфокса заключается в следующем. Браузер использует базу данных SQLite в которой хранит закладки, куки, историю из журнала и прочие данные. Эти данные накапливаются и захламляют базу. Их иногда нужно оптимизировать. Скрипт выполняет эту работу и firefox работает быстрее.
09.06.2009 в 22:01
Раз в месяц (при интенсивном использовании может и два раза) оптимизировать firefox полезно..
07.07.2009 в 08:38
Тоже сегодня заинтересовался этой проблемой. До того, как попал на ваш блог, прочитал об этом на Linux.org.ru. После этого решил поместить данный скрипт в еженедельный cron
Чего и Вам сделать рекомендую.
10.07.2009 в 18:12
Добавить в cron это хорошая идея. Но учтите что браузер не должен быть запущен во время выполнения скрипта. Могут “полететь” закладки, настройки браузера, еще что-либо.
20.10.2009 в 13:27
Cron висел на ночное время. Я в такое время как правило сплю =) и браузер соответственно выключен.
Суть оптимизации, кстати говоря, заключается в том, что браузер, например, сохраняет историю, а так как она со временем устаревает - он её удаляет. Но удаление в SQLite происходит каким-то чудным образом и в общем, физически то ли всё остаётся в базе, то ли на месте удалённых данных образуется пустота. А как ясно из названия команды (VACUUM), она просто удаляет весь этот вакуум.
Да и потом, браузер во время работы блокирует все используемые базы. Экспериментальным путём установлено, что выполнение команды из поста при запущеном браузере просто сообщит о том, что базы заблокированы =) Сомневаюсь, что вероятна потеря каких-либо данных.
Впрочем, всё вышесказанное - исключительно IMHO.
20.10.2009 в 17:17
Ну, мое дело предупредить а дальше на свой страх и риск))) Читал что у некоторых возникали проблемы с браузером.
12.12.2009 в 11:31
Ни какой реакции на эту команду не было.- ни в консоле, ни в скорости браузера. Нет объяснений что за строка и вообще скудно как-то. За ознакомление спасибо.
12.12.2009 в 14:48
Почему-то у других работает. Пожалуйста.
11.02.2010 в 23:24
А у тебя sqlite не был установлен как же тогда у тебя броузер хранил информацию в sqlite если тебе пришлось его доставить? “Браузер использует базу данных SQLite в которой хранит закладки, куки, историю из журнала и прочие данные”
11.02.2010 в 23:25
“значит sqlite у всех кроме меня установлен”
12.02.2010 в 00:48
Я не знаю как firefox работает со своими данными хранящимися в формате .sqlite. Специально sqlite не ставил. Видимо sqlite установился как зависимость к программам которым он нужен для работы. Скорее всего Амарок..
А скрипт не работал потому что не хватало библиотеки sqlite3.
12.02.2010 в 07:16
Если Вы зайдёте на сайт SQLite, то увидите, что сама библиотека является общественным достоянием, а следовательно может как использоваться в качестве внешнего объекта, так и встраиваться непосредственно в код программы. Необязательно устанавливать SQLite для работы некоторых приложений. Тем более, она весит всего около пары сотен КБ.
12.02.2010 в 17:56
Что тут сказать.. Век живи, век учись))
Кстати, если запустить скрипт при запущенном браузере ничего фатального не происходит. Скрипт просто не работает и выводит сообщение об ошибке.