Этот пост можно было бы озаглавить "как ускорить Lightroom в 7 раз", и я бы не сказал что это была бы ложь, но таки есть здесь некоторая натяжка ;-) Продолжая изучать для себя тему ускорения Lightroom (о чём уже
развёрнуто писал в ключе апгрейда аппаратной части и зависимостей) провёл я дополнительные замеры, экспортируя один и тот же набор файлов в разных сценариях.
Получил изменение времени экспорта от 8 минут 51 секунды до 1 минуты 19 секунд. Это почти в 7 раз.
Предыстория простая - один мой знакомый пожаловался, что его нестарый MacBook Pro с двуядерным Core i7 2.8 ГГц (поддерживающим Hyper Threading), 8 гигабайтами оперативки и крутым матовым экраном, стоивший ещё не так давно целых 75 тысяч рублей, экспортирует снимки из Lightroom мучительно долго, и это становится проблемой, когда ему требуется вывести клиенту тысячу кадров. Мы замеряли - 127 снимков с Nikon D90 этот MacBook Pro выводил 6 минут и 30 секунд. Следовательно, на 1000 снимков он бы потратил 51 минуту. Проделав пару операций, на том же компьютере можно сделать так, что экспорт тысячи снимков займёт 35 минут, то есть, получить ускорение в 30%. А если ещё кое-что подшаманить, то угробить на экспорт можно и меньше времени.
Я к тому, что не обязательно покупать новый MacBook (PC, ноут, проц, апгрейд...) для того, чтобы заставить Lightroom шевелиться быстрее. Нужно только понимать как и что в нём работает и не совершать простых ошибок. Таких, например, как экспорт на USB HDD. Кстати, некоторые владельцы ноутбуков этим грешат, теряя своё время.
Вкратце: чтобы ускорить вывод снимков в Lightroom, нужно (1) экспортировать файлы на быстрый накопитель [НЕ экспортировать на USB HDD и HDD ноутбука] (2) делать это в несколько потоков. А теперь подробнее и под катом.
UPD. Сразу хотел пояснить, ибо уже вижу комментарии где меня недопоняли. Говоря о "выводе снимков с Nikon D90" я имею ввиду "вывод снимков, снятых Nikon D90, из NEF в JPEG/TIFF", то есть о _рендеринге_ при экспорте, а НЕ об импорте с флешки/камеры в компьютер. Речь о процедуре, когда RAW с наложением всех масок, фильтров, коррекций и остального превращается в JPEG и TIFF.
Я уже
писал в статье про ускорение Lightroom, что и где кушает ресурсы. Но есть два недооценённых фактора. Во-первых, как показали замеры, экспорт на медленный диск существенно, а при некоторых условиях в разы, увеличивает время экспорта, особенно если вы выводите RAW в TIFF16. Происходит это из-за "секвентальности" Lightroom - он не приступает к следующей операции, не закончив предыдущую. Частично ситуацию спасает кэширование операций записи, но только до определённого предела.
Также, мало кто знает о возможности экспорта из Lightroom в несколько потоков, а он, в свою очередь, эффективно использует ресурсы многоядерных процессоров, таких как Core i5 или i7 (и даже стареньких Core 2 Duo). По умолчанию Lightroom оптимизирован на то, чтобы вы могли при экспорте заниматься другими делами - например, ретушировать в Photoshop. Если нужно, можно заставить LR "кочегарить на полную", и это может быть приличным подспорьем, если ретуширование "в фоновом режиме" не планируется.
Для проведения замеров я использовал свой "фотодесктоп" - довольно монструозную машину с процессором Core i7 3960X, 32 гигабайтами оперативной памяти, 2-гигабайтной видеокартой с поддержкой ускорения CUDA и OpenGL, массивом из SSD в RAID0 и другими "няшками", подобранными так, чтобы получить максимум от Lightroom, Photoshop, Premiere и некоторых других программ, охочих до ресурсов. Я это говорю не к тому, чтобы похвалиться, а для понимания цифр. К тому же, даже эту пышущую мипсами железяку можно ускорить в Lightroom в полтора-два раза на пустом месте.
Вот цифры, полученные при экспорте 127 снимков NEF (RAW) с Nikon D90 в JPEG максимального качества:
Как видим, прирост составляет почти 2.3 раза, если вместо экспорта одним потоком на медленный внешний диск (скорость записи 35 Мбайт в секунду) мы будем экспортировать тремя потоками на SSD. Но даже простая замена медленного внешнего жёсткого диска на быстрый (USB 3.0) позволяет ничего не меняя выиграть 30 процентов. Но и в стандартном сценарии, когда экспорт идёт в JPEG на SSD, можно выиграть 48 процентов, просто используя многопоточный экспорт.
Усложним задачу. Вот цифры экспорта тех же 127 снимков в NEF (RAW) с того же Nikon D90 в TIFF16/ProPhotoRGB/без компрессии:
При экспорте на внешний накопитель с интерфейсом USB 2.0 полное время процедуры заняло чудовищные 8 минут и 51 секунду. Сравните это с 3:39 при экспорте в JPEG. Но, что забавно, самое короткое время экспорта (RAMdisk->RAMdisk) даже сократилось и составило всего 79 секунд (против 91 секунды при экспорте в JPEG при прочих равных) - то есть, процедура экспорта в TIFF у нас менее процессорозависимая, но намного более дискозависимая. Это объяснимо - при экспорте в JPEG нужно ещё сжимать снимки в формат с потерями данных, на что уходят дополнительные секунды процессорного времени.
О чём всё это говорит?
а) Используйте как минимум экспорт в два потока. Делается это просто - выделяете половину файлов, которые хотели перевести в JPEG/TIFF и делаете им Export. Сразу же выделяете вторую половину и тоже делаете им экспорт. Вверху появляется две полосочки, загрузка процессора существенно возрастает, время экспорта сокращается. Если ядер больше двух (старшие Core i7), можно попробовать экспорт в 3 и 4 потока. На 8-ядерной системе это позволяет поднять загрузку CPU до 100% и выклянчить ещё процентов пятнадцать по сравнению с экспортом в два потока.
б) Используя ноутбук экспортируйте не на встроенный жёсткий диск: либо купите быстрый внешний накопитель (FireWire 800 или Thunderbolt для Mac, USB 3.0 для PC), либо поменяйте встроенный HDD на SSD. Уже только это, при прочих равных (процессоре и памяти) на более-менее актуальной машине ускорит процесс. Не факт, к тому же, что замена MacBook с 2-ядерным процессором на модель с 4-ядерным сильно ускорит экспорт, если не использовать многопоточность и быстрый диск.
А теперь просьба к читателям этого блога. Если будет время и желание, пожалуйста, сравните сколько у вас идёт экспорт 100 снимков RAW вашей камеры в JPEG 100% и TIFF 16 bit при выводе в 1 и 2 потока. Очень бы хотел увидеть эти цифры в комментариях с указанием конфига.
P.S. Если сравнивать с тем MacBook Pro, о котором я говорил в начале, то получается что он 1000 снимков при умелом подходе экспортирует за 35 минут, а мой десктоп за 10. Вроде бы разница в одно чаепитие, но я бы ещё вспомнил о скорости рендеринга превьюшек 1:1 (оно равно столбцу "1 поток, RAMdisk -> RAMdisk") - получается, что тот комп справится с задачей за 50 минут (а реально - больше, уперевшись ещё временем доступа в жуткую базу данных LR), мой за 15. Получается чистой экономии 1 час только на импорте-экспорте одной небольшой фотосессии. А если прибавить фильтры Photoshop и остальное, то... разница разительная, конечно. Это я не потому что макбуки плохие, а потому что десктопы всё ещё имеют смысл. Себя успокаиваю ;-)