akry: (Default)

По быстренькому проверил ещё разок, как работает оптимизация баз Лайтрума.

Зарядил новенькую базу, залил туда пару десятков фоток, оптимизировал средствами самого Лайтрума. Получил размер 1,294,336 байт.

Вышел из Лайтрума, оптимизировал по методике, получил размер 1,282,048 байт. На 12 килобайт меньше, стало быть.

Плюс файл БД дефрагментирован на диске.

На такой мелочи прирост скорости конечно заметен не будет, но о чём нам говорит эта разница в размерах? Как минимум, о том, что сам Lightroom пользуется немного другим способом оптимизации. Лучше или хуже — неизвестно, но другим.

 

++ Вспомнил ещё одну штуку. Даже две.

Первое — БД с DNG у меня работает много шустрее, чем БД с оригинальными RAW (у меня CR2 от Canon 50D). Быстрее открывается в Loupe, быстрее просматривается в Grid (что вообще непонятно почему, он же не смотрит оригиналы при этом), быстрее рендерится превью (а это как раз понятно — конечно же свой «родной» DNG он открывает быстрее).

Второе — с оригинальными CR2 у меня иногда previews не сохраняются вообще. Срендерил Standard-Sized Previews, вышел из каталога, открыл его снова — и опять превью рендерятся, будто бы ничего не было. Нигде не нашёл описания этой проблемы. Что интересно, после преобразования этих фоток в DNG проблема исчезает.


эта статья в liveinternet

akry: (Default)

Спасибо 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… Сколько бы времени сэкономило бы!

April 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 9th, 2025 03:48 pm
Powered by Dreamwidth Studios