• Авторизация


Оптимизация баз Lightroom и Firefox 26-03-2009 22:47 к комментариям - к полной версии - понравилось!


Спасибо ilya_ya за помощь.

Итак, идея в том, что Lightroom хранит свои базы в SQLite. А их можно оптимизировать минимум двумя способами: командой «VACUUM» и дефрагментацией.

Для первого способа нужно скачать SQLite (всего то около 300 килобайт) и поместить экзешник куда-нибудь, где он будет доступен. Например в директорию Windows.

Для второго нужна махонькая тулза по имени contig (качается отсюда). Она очень быстро дефрагментирует — но не весь диск, а только тот файл, который вы указали. Распаковываем, помещаем в системную папку, чтобы был в доступе из командной строки.

Делаем файл «optimize_lightroom.cmd» с таким содержимым:

@ECHO OFF & CLS

for /f "tokens=*" %%X IN ('dir /b *.lrcat') do (
    rename "%%X" "1.lrcat"
   
    echo "Optimizing DB '%%X'..."
    sqlite3 1.lrcat "VACUUM;"
   
    echo "Defragmenting '%%X'..."
    contig -v "1.lrcat"
   
    rename "1.lrcat" "%%X"
)

echo "Done."

Сохраняем его в папку, где лежит нужный нам каталог лайтрума. Или опять же в системную папку.

Мне таки не удалось заставить sqlite понимать русские имена, зато workaround с переименованием работает отлично. Если кто разберётся, как без этого обойтись, пишите.

Запускаем файл (при выключенном Лайтруме). Проверяем — не тот ли это эффект, что достигается с помощью команды «Relaunch&Optimize» внутри Лайтрума? У меня размер файла получился меньше.  Кроме того Лайтрум наверняка ничего не дефрагментирует.

Теперь от Firefox.

Код почти такой же:

@ECHO OFF & CLS

for /f "tokens=*" %%X IN ('dir /b *.sqlite') do (
    echo "Optimizing DB '%%X'..."
    sqlite3
"%%X" "VACUUM;"
   
    echo "Defragmenting '%%X'..."
    contig -v
"%%X"
)

echo "Done."

С тем отличием, что Firefox не использует русских имён и переименовывать ничего не надо.

Скрипт запускаем в папке профиля текущего пользователя. Что-то вроде «c:\Documents and Settings\ItsMe\Application Data\Mozilla\Firefox\Profiles\jkbhtp65.default». Там должно быть штук восемь файлов с расширением «sqlite» — это верный признак. Разумеется перед запуском выключите Firefox.

И создайте backup — хотя бы в первый раз, пока не убедитесь, что всё работает.

Ну как, стало быстрее?

 

p.s. Как бы написать программу, генерирующую превью без участия Lightroom… Сколько бы времени сэкономило бы!

вверх^ к полной версии понравилось! в evernote
Комментарии (10):
Threepwood 26-03-2009-23:26 удалить
Я придумал другой workaround, без переименования, но с временным файлом и ещё одной утилитой. Проблемы в том, что нормальная кодировка из батника получается только при вызове встроенных команд. Всему внешнему передаётся 866 вместо 1251, с этим надо бороться. Пример: @echo off del /q temp.dos @echo off del /q temp.dos del /q temp.bat for %%n in (..\*) do echo contig -v "%%n">>temp.dos rusconv -alt +win temp.dos ren temp.win temp.bat del /q temp.dos call temp.bat т.е. мы сначала делаем батник с нужными командами, потом конвертируем его в 1251 и потом запускаем. rusconv отсюда http://uucode.com/rusconv/index.html.
akry 26-03-2009-23:31 удалить
Ответ на комментарий Threepwood # Я пробовал аналогичный вариант с iconv, но потом решил, что с переименованием будет проще. Про rusconv не знал.
Threepwood 26-03-2009-23:33 удалить
akry, перекодировщик тут явно роли не играет 0)
26-05-2009-18:54 удалить
Ух ты, для ФФ улучшение заметно на-глаз. В чём тут хитрость, почему они сами такую простую операцию делать не в состоянии? Спасибо. В примере для ФФ полно опечаток :)
akry 27-05-2009-00:37 удалить
Ответ на комментарий # Мне этого не понять. В принципе можно покопаться в исходниках огнелиса, но лень. Думаю, какой-то «сборщик мусора» там всё таки есть, только он работает, когда хочет он, а не когда нужно нам. А вот Лайтрум делает нечто подобное, когда мы даём команду «Оптимизировать каталог». Не уверен, что в точности это, но наверняка похожее.
akry 27-05-2009-00:39 удалить
Ответ на комментарий # А что за опечатки? Исправлю.
27-05-2009-00:49 удалить
Ответ на комментарий akry # Вместо sqlite3 1.lrcat "VACUUM;" должно быть sqlite3 "%%X" "VACUUM;"
akry 27-05-2009-00:52 удалить
Ответ на комментарий # О! Спасибо, поправил. И в config ниже тоже.
27-05-2009-01:01 удалить
Ответ на комментарий akry # Я вам пару комментариев написал в ветке про Лайтрум воркфлоу.
akry 27-05-2009-01:08 удалить
Ответ на комментарий # Ага, там ответил.


Комментарии (10): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Оптимизация баз Lightroom и Firefox | akry - aKry online | Лента друзей akry / Полная версия Добавить в друзья Страницы: раньше»