?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

Adobe Lightroom - morfizm


Jan. 13th, 2018 01:29 am Adobe Lightroom

Лайтрум в плане перформанса говно говном. Но если раньше это была интуитивное знание, то сейчас я немножко потестировал. На странице написано что они могут утилизовать до 6 ядер. Я последил за процентами использования CPU, Memory, Disk, GPU на разных задачах.
*) GPU: не более 1% в любом режиме.
*) CPU: 15% на импорте; около 10-15%, до 20% на непрерывном накладывании эффектов; до 35% на экспорте.
*) Disk: какое-то тривиальное количество диска, я даже не заметил, строго меньше 1 MB/sec.
*) RAM: самый высокий working set был 7 GB, причём я заметил, что на разных операциях он иногда толчкообразно подскакивает. Т.е. лайтрум аллоцирует временные объекты и деаллоцирует.
*) Попробовал интересный юскейс: на полоске предварительного просмотра фоток (нижней) просто нажимать клавишами много раз "вправо"-"влево", чтобы нажатия накопились в буфере, и лайтрум их обрабатывал - так быстро, как мог. Использовалось 6-11% CPU, до 0.8 MB/sec диска и до 1% GPU. Т.е. по сути были заняты только 2 ядра из 16, и диск не является bottleneck'ом. Трудно понять, что же это. Ожидания, из-за того, что внутренняя архитектура приложения event-driven? Частые переключения в системные вызовы?

Для тестов я отключил оверклок проца (оставил базовый 3.4 GHz на 16 ядрах), но оставил overclock памяти (3200 MHz DDR4, quad-channel, 32 GB).
Винчи - NVMe RAID0 из трёх, с каким-то гигантским throughput'ом и IOPS не хуже, чем в SSD.

Выводы по конфигам (конечно, из маленького sample, я поигрался всего час, в каталоге всего 200 фоток, и попробовал только некоторые вещи, но end-to-end):
*) По процессору для лайтрума круче, чем 4-core with hyperthreading не нужно (20% на 16-ядерной машинке это 3.2 core). Разницу на 6-ядерном можно будет заметить только на экспорте, а экспорт никого не волнует, всё равно на экспорт и импорт люди ходят на перекур.
*) Утилизация CPU в task manager'е включает ожидание памяти, поэтому предыдущий вывод тем более верен, если память будет более медленная. Будет либо так же, либо всё замедлится и CPU утилизация ещё больше упадёт, т.к. нужно будет ещё меньше CPU power, чтобы её ждать более долгих ответов от памяти. Подозреваю, что скорость памяти не является bottleneck'ом в моём сетапе. Будет время - потестирую потом, что будет, если память задаунклокать.
*) По количеству памяти - с рекомендуемыми 8 GB, вероятно, будет "почти хорошо", но тот факт, что я видел число 7 GB, говорит о том, что желательно минимум 16 GB. На системе с 8 GB, часть памяти используется системой, файловым кэшем и другими процессами, и 7 GB для одного приложения там никогда не будет. Нужно ли больше, чем 16 GB - фиг знает, но для моего теста было не нужно.
*) Думаю, что лайтруму больше всего подойдёт геймерский сэтап. В них акцент идёт на maximum single-core performance, но так чтобы ядер было 4-6, памяти много, но не очень много (16 GB уже считается нормально для новых high end сетапов), и диск быстрый но не фанатично. В общем как раз для лайтрума.
*) Главный вывод - приложение написано через одно место и вряд ли от этой компании можно ожидать каких-то улучшений на отрезке в года три. Потому что там, небось, нужно нахрен всё переписать с нуля, а быстрее, чем за 2-3 года, для таких приложений это не делается... там же нужно поддерживать тысячи профайлов линз, тысячи user setting'ов, всякие странные workflow features, к каждой из которых наверняка привыкли какие-нибудь 5% пользователей, и т.п. Другими словами, для performance нужно искать другой софт.

15 comments - Leave a commentPrevious Entry Share Next Entry

Comments:

From:mrumka
Date:January 13th, 2018 09:48 am (UTC)
(Link)
У них 99% кастомеров сидят на макбуках, а там больше 8 ядер не бывает. Исключение составляет новый мак про, куда они засунули 16 ядер. Поэтому пока эти машинки дойдут до массового использования эти самые три года и пройдутъ ))
From:morfizm
Date:January 13th, 2018 09:53 am (UTC)
(Link)
Какие 8? Они едва утилизируют 3 ядра. 3.2 ядра это пик всех операций, что я видел, кроме экспорта. Steady state во время выполнения операций - скорее, 1.5-2 ядра, чем 3.

Edited at 2018-01-13 09:54 am (UTC)
From:mcdill
Date:January 13th, 2018 11:23 am (UTC)
(Link)
По моему юзкейсу 80-90% времени работы лайтрума - это работа оператора.
Я выбираю варианты, накладываю их, а применяются они уже лайтрумом относительно времени затраченного мною - практически мгновенно. Небольшой дискомфорт может быть, если ты ищешь конкретное фото и бегаешь по линейке фотографий взад-вперед (в какой-то момент может подтормаживать), и самое большое кол-во времени тратится на batch export files, но это самая последняя операция и я ухожу сразу же после ее начала.

В общем, как раз к лайтруму+пк у меня вообще нет претензий. В смысле, их не стало после того, как в ПК поставил 12 гб оперативки. На 4-х гигах это была пытка и регулярные зависоны. С 12 гигами я работаю значительно медленнее компьютера. На порядки.

На старом ноутбуке было 8 гигов. Лайтрум крутился без зависонов но и особого комфорта в работе не было. Тормозил даже на наложении эффектов (хотя, там сам ноут был слабенький, может из-за этого)

Фотошоп - другое дело. Тут АдЪ и ИзраилЬ!
У меня финальный пресет есть:
1. Полнокадровый снимок 4000 на 3000
2. склейка всех слоев
3. Небольшое устранение шума (долго)
4. смарт шарп с ранее заложенными параметрами (ололо как долго)
5. сохранение фотографии в два разных места на ПК

Да и вообще можно сказать, физически видно как любой фильтр отрабатывает на моем ПК. У чуваков с ютуба в 5-10 раз быстрее.
И тут если комп улучшить, прирост в моей производительности будет реально виден

Edited at 2018-01-13 11:27 am (UTC)
From:morfizm
Date:January 13th, 2018 11:31 am (UTC)
(Link)
> По моему юзкейсу 80-90% времени работы лайтрума - это работа оператора.

Странно. У меня совсем другое впечатление. Я прекрасно понимаю, что если бы мне не нужно было секунду ждать после каждой перерисовки, когда я двигаю какой-то ролик, то на подыскивание оптимального значения ушла бы 1 секунда вместо 5. Ну т.е. на всех этих мелких операциях была бы экономия в 5 раз. А кроме них-то ничего особого и нет. Кроме экспорта, сразу после начала которого, как ты верно заметил, можно переключиться на что-нибудь другое.

Мало того, если бы перерисовывалось быстро, то я бы делал больше работы, т.е. повышал бы качество и быстрее учился новому. Мне бы хотелось играться с большим количеством настроек. Так - я играюсь лишь с ограниченным количеством, потому что тормозня.


> Да и вообще можно сказать, физически видно как любой фильтр отрабатывает на моем ПК. У чуваков с ютуба в 5-10 раз быстрее. И тут если комп улучшить, прирост в моей производительности будет реально виден

Да, именно поэтому фотошоп - хороший софт, в отличие от лайтрума он куда больше оптимизирован под перф.


Edited at 2018-01-13 11:31 am (UTC)
From:morfizm
Date:January 13th, 2018 11:35 am (UTC)
(Link)
Вообще надо бы для вас, любителей считать будто микро-задержки UI не есть productivity bottleneck, снять ролик с осуществлением покупки в интернете. Я придумаю какой-нибудь use-case, типа небольшой ресёрч, погуглить, выбрать, поискать на амазоне, читнуть фидбеков (поискав там какой-нибудь конкретный параметр) и расплатиться-купить.

У меня как раз есть два компа, на одном из которых browsing быстрый, а на другом раз в 5 быстрее :) Вот и разницу посмотрим.

Можно будет ещё потестить, сделав тормозной интернет при помощи NetLimiter'а. Посмотрим, какой реальный impact от перехода со 100 мегабит на гигабит.


Edited at 2018-01-13 11:49 am (UTC)
From:mcdill
Date:January 13th, 2018 01:55 pm (UTC)
(Link)
Интересно было бы посмотреть. Даже не представляю результатов. Вернее ощущений своих от результатов.
У меня вообще 10 мб =)

From:morfizm
Date:January 13th, 2018 09:16 pm (UTC)
(Link)
10?!? Дима представил себе перманентную жизнь в гостинице. Блин, выжить можно, конечно, но это же не жизнь! :)
From:morfizm
Date:January 13th, 2018 11:38 am (UTC)
(Link)
Отдельно - меня очень раздражает, что лайтум пытается делать операции в фоновом режиме. Скажем, я хочу:
1. Скопировать все сеттинги с фотографии А.
2. Наложить на фотографию Б.
3. После чего изменить несколько сеттингов.

Когда я заканчиваю действие 1 (жму paste), он начинает работать в фоновом режиме, какой-то случайный интервал времени от секунды до секунд 10. Мне нужно дождаться, пока я убежусь, что результат наложен (а round-trip между восприятием экрана и генерацией действия это больше секунды у человека, просто в силу биологических особенностей нервной системы, т.е. ещё, сука, дополнительная секунда!), и только после этого переходить к 3.

Если бы он блокировал исполнение и накапливал бы действия в буфер, то они бы выполнились в нужном порядке, эти пару секунд тормозни были бы не такими болезненными.

Edited at 2018-01-13 11:39 am (UTC)
From:mcdill
Date:January 13th, 2018 08:04 pm (UTC)
(Link)
Прикол, я думал мне это кажется =)
Но там задержка от силы полторы-две секунды, не более.
From:morfizm
Date:January 13th, 2018 09:19 pm (UTC)
(Link)
Там задержка полторы-две секунды если никаких других действий он не делает. Т.е. у него закончились все фоновые процессы, он в режиме 100% ожидания и тут ты делаешь paste сэттингов в одну фотку.

Если ты активно делаешь разные вещи и там что-то другое заканчивается, доходит до 10 секунд.

Если ты выделяешь более одной фотки (и на них всех делаешь paste settings), то тоже. Даже 2-3 уже дают сильный эффект замедления, не говоря уже о 20.

Но самое поганое - что если, не дождавшись результатов paste, делать что-то ещё, этот paste может не сделаться вовсе. При этом он иногда будет в history, а иногда нет. Я могу воспроизвести case, когда в history будет paste settings, но при этом они фактически не наложились, и это не просто глюк отображения, т.е. я могу сделать экспорт и увидеть, что сэттинги не наложились. Ужас :(


Edited at 2018-01-13 09:20 pm (UTC)
From:morfizm
Date:January 13th, 2018 11:51 am (UTC)
(Link)
Кстати, пока единственное, что утилизирует 16 ядер хотя бы на 80% - это экодинг видео, ffmpeg + libx264.

К сожалению, видеокартой через ffmpeg + nvenc_h264 всё равно в 1.5-2 раза быстрее при CPU утилизации 15% :)
From:andreyvo
Date:January 13th, 2018 04:11 pm (UTC)
(Link)
Адобовский софт это вообще ужас-ужас-боль. Особено акробат. Особенно когда начали выходить всякие альтернативные ридеры пдфа. Про флэшовый фэйл с его решетом с експлоитами вообще молчу.
From:morfizm
Date:January 13th, 2018 09:14 pm (UTC)
(Link)
Да уж, я помню, как я радовался, когда вышел Foxit и HTML 5. Это осовобождение от адобе ридера и флэша.

Я думаю, что Адоб примерно как Микрософт - вышел на успех тем, что дал уникальный функционал, который никто до этого не давал, ну и работал тесно со всякими enterprises, чтобы учитывать их производственные use cases, оказывал саппорт. Теперь катится по инерции. Впрочем, инерция огромна, потому что ублажать энтерпрайзы с их кучей извращённых требований (завязанных на их собственный легаси софт, процессы и т.п.) никому особо не хочется.
From:metaller
Date:January 14th, 2018 02:46 am (UTC)
(Link)
>>Да уж, я помню, как я радовался, когда вышел Foxit и HTML 5
+100500 !
From:metaller
Date:January 14th, 2018 02:24 am (UTC)
(Link)

Для сравнения - DxO в режиме редактирования почти хватает моего слабенького Lenovo X1 carbon, например время применения нового пресета около одной секунды. На домашнем компе доли секунды, летает ! При экспорте грузит все ядра на 100%. И чем им больше, тем экспорт быстрее. Хотя как ты правильно заметил на время экспорта можно занять себя чем-нибудь более полезным ;)