Тормоза от «высокой производительности»
Одна из бесячих вещей на компе — что все программы стремятся всё сделать как можно быстрее, но это не всегда надо. Все говорят про производительность, делают разные тесты, типа за сколько сконвертируется час 4К-видео.
Вот с тех пор как я стал регулярно снимать всякое для Ютюба, я стал намного чаще рендерить и конвертировать видео. И меня просто бесит, что хоть стандартный Квиктайм, хоть Аймуви, хоть Хэндбрейк (графическая оболочка для ffmpeg) забирают все ресурсы компа на свою херню.
Если Хэндбрейку надо 20 минут на конвертацию видоса, то 20 минут мой комп греется как сковородка, пыхтит вентиляторами и почти не пригоден для работы, потому что всё дичайше тормозит. Нахрена мне это надо?
Я бы хотел, чтобы в любой ресурсоёмкой работе был режим «делать незаметно». То есть если я сижу и читаю буквы с экрана, окей, делай там на фоне. А если я сам пытаюсь делать что-то, встань на паузу и подожди. Да и даже если я ничё не делаю, но вот-вот от твоей работы уже заорёт вентилятор — встань на паузу, дай остыть!
И пофиг, что видео будет три часа кодироваться, я не спешу. Зато все эти три часа компом будет приятно пользоваться. Или комп можно будет спокойно на ночь оставить рендерить видео и закрыть крышку, не боясь, что там всё расплавится внутри.
Мне бы такой неспешный режим был удобен даже по умолчанию, а вот если вдруг всралось сделать быстро — ну тогда я нажму кнопку «убейся, но сделай быстро». Удивительно, что такую простую вещь вообще никто не понимает.
Можно отключить турбо бустна процессоре, но не в отдельном приложении, а на всем Маке. Вот блог-пост Марко Армента про это: https://marco.org/2015/06/07/disabling-turbo-boost.
На моём компе это почти ни на что не влияет, и вовсе не влияет на то, о чём пишу я.
Иногда производители софтин задумываются, и в программке (Кейшот) дают возможность задать загруженность процессора от 10 до 100 % при рендере. Странно, что софтины редко дают такую фитчу ㄟ( ▔, ▔ )ㄏ
man nice — можно понизить приоритет отдельно взятого процесса.
man taskset — можно заставить отдельно взятый процесс использовать только одно ядро.
В Пиксаре есть (или, по крайней мере, был) интересный подход — так как студии всегда нужен поток превизов и прочих рендеров, все компы разработчиков используются для распределенного рендеринга. Однако у каждого установлена утилитка NIMBY (not in my backyard), в настройках которой можно установить время использования ресурсов, или вообще временно отключить, и т. д. Сейчас уже, наверное, это не так актуально, а вот даже лет 10 назад это была очень полезная утилизация ресурсов.
В винде есть настройка количества используемых ядер процессора под любую задачу.
Мимо проходивший комментатор дал наполовину верный ответ:
https://apple.stackexchange.com/questions/370428/how-to-increase-decrease-a-priority-of-a-macos-process
Чтобы так не мучаться каждый раз, можно использовать Автоматор.
Ну, к примеру конвертер для видео Movavi так умеет. Почему это НИКТО не понимает?