Оптимизация работы FL Studio под Win7 и многоядерными процессорами.
Купив новый мощный ноутбук с Core i7 Q740 на борту, естественно, первым делом решила проверить его на нагрузку тяжелым музыкальным проектом, сделанным на десктопе с Core2Duo 2.8 гГц. И тут же оказалась глубоко разочарована - выигрыша в производительности не обнаружилось никакого вовсе. А на некоторых проектах все оказалось даже хуже - хрипение, шипение и булькание даже там, где на Core2Duo звучит еще довольно сносно. А самое любопытное - разница в показаниях загрузки процессора. На индикаторе FL загрузка 80%, тогда как по данным Монитора ресурсов Windows - всего 10-15%.
В чем же дело? Кривой FL, не умеющий работать с многоядерными процессорами, особенно новыми Core i7? Или в чем-то другом? Озадачившись этими вопросами, провела целый день в непрерывном гуглении, чтении заумных статей и проведении практических экспериментов. Цельной, полной и непротиворечивой информации найти нигде не удалось, хотя подобные проблемы оказались озвучены в сети во множестве. И не только касательно FL, на официальном форуме Sonar, например, было встречено то же самое. Пришлось собирать все по крупицам и выстраивать собственный алгоритм настройки. Проблема оказалась вполне решаемой!
Подготовка.
Прежде чем приступить к решению проблемы - собственно, оптимизации работы FL - необходимо предпринять некоторые предварительные шаги, если они не были предприняты ранее. А именно - получить полный административный доступ к своей же системе, иначе выполняемые настройки могут не дать никакого эффекта. Если в учетной записи, под которой вы входите в систему после приобретения свеженького компьютера с Windows 7, значится "Администратор" - то это ничего не значит. Этот якобы "администратор" по умолчанию работает в режиме "необходимости одобрения" (или как-то так), от некоего супер-администратора, учетная запись которого по умолчанию вообще скрыта и ниоткуда никак не доступна :).
Решить эту проблему можно двумя путями. Самый простой: зайти в Панель управления/Учетные записи пользователей/Изменение параметров контроля учетных записей. В открывшемся окне обнаружится вертикальный "ползунок", который необходимо сдвинуть в положение "Никогда не уведомлять". И нажать ОК. Все.
Но если вдруг это окно или этот ползунок окажутся недоступными, или просто захочется более радикального решения, то нужно выводить учетную запись суперадминистратора на чистую, так сказать, воду. И сдвигать этот ползунок в положение "Никогда не уведомлять" из под этой учетной записи. Делается это так.
Из Старт-меню/Все программы/Стандартные/ запускаем Cmd (командная строка).
В командной строке пишем:
net user администратор /active:yes
и жмем enter.
Теперь перезагрузка... и на окне входа помимо основной учетной записи должна появиться учетная запись натурального администратора.
Чтобы отключить ее появление после выполнения нужной настройки контроля учетных записей, нужно точно так же запустить командную строку и вбить туда
net user администратор /active:no
Все, нужные права, слава богу, получены.
Решение, часть 1.
Проблема первая, она же главная. Так называемая "парковка ядер" (или "парковка процессоров", в оригинале "core parking"). Взглянув на "Монитор ресурсов" нетрудно заметить, что система использует из всех 8-ми виртуальных ЦП только несколько, остальные же - запаркованы и не используются (на картинке их 4 на 4).

Теоретически считается, что при увеличении вычислительной нагрузки, система должна сама автоматически активировать "спящие" ядра. Однако, практически, этого не происходит. Вероятно потому, что шипение, кряхтение и булькание при воспроизведении в FL начинается намного раньше, чем система решит, что нагрузка уже достаточно возросла. А может быть и вообще никогда не решит - в такие тонкости уже не вдавалась. У меня сама ни разу не решала :).
Нас такая ситуация, естественно, не устраивает. Мы хотим, чтобы FL были доступны ВСЕ имеющиеся ядра. Слава богу, решение есть: нужно отключить парковку ядер. Причем, лучше всего сделать это так (особенно на ноутбуках), чтобы можно было быстро включить обратно. И вообще - быстро и легко переключаться между режимами с включенной парковкой и выключенной. Парковка ядер - довольно хороший и нужный механизм, обеспечивающий энергосбережение и защиту от перегрева, и отказываться от его использования совсем - не слишком разумно.
По умолчанию, через визуальный интерфейс, сделать этого нельзя. Придется лезть в реестр (с полными правами администратора, естественно - для чего и нужна была вышеописанная подготовка) и менять два значения в двух ключах.
А именно, в ключе:
HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583
в значении Attributes вместо 1 поставить 0.
И в ключе:
HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\ea062031-0e34-4ff1-9b6d-eb1059334028
тоже в значении Attributes вместо 1 поставить 0.
В результате, эти два параметра настроек парковки ядер - соответственно "Минимальное число ядер в состоянии простоя" и "Максимальное число ядер в состоянии простоя" станут доступными для изменения из визуального интерфейса Windows управления электропитанием, где они по умолчанию, само собой, недоступны. Больше ничего при этом не изменится. Чтобы изменить, нужно, собственно, и воспользоваться этим самым визуальным интерфейсом.
Идем в Панель управления/Электропитание. Там по умолчанию находится несколько планов электропитания. Целесообразно оставить текущий активный план без изменений, или для обычной работы на компьютере выбрать план "Сбалансированный". А отключать парковку ядер, например, в плане "Высокая производительность". Или вообще создать отдельный, специальный план электропитания для работы с музыкой. Вызов окошка "Электропитание" можно затем закрепить в Старт-меню Windows и переключаться с одного плана на другой в два клика мыши, когда начинается/заканчивается работа с музыкой.
Теперь, в выбранном (или созданном) для работы с музыкой плане электропитания кликаем ссылку "Настройка плана электропитания", вследствие чего открывается окошко, на котором находим и кликаем ссылку "Изменить дополнительные параметры питания", вследствие чего открывается окошко, которое нам и нужно, наконец (см. картинку).

В этом окошке находим раздел "Управление питанием процессора", раскрываем его и видим примерно то, что на картинке. Нам нужно изменить параметры в разделе "Минимальное число ядер в состоянии простоя". В пункте "От сети:" поставить значение 100%. Если хочется, чтобы быстрее садилась батарея, то можно и "От батареи:" тоже поставить 100%, но это вряд ли целесообразно :).
Раздел "Максимальное число ядер в состоянии простоя" мы сделали видимым только для контроля, чтобы там не оказались случайно по умолчанию значения меньшие, чем мы выставили в "Минимальном". Открываем это "Максимальное число ядер в состоянии простоя" и убеждаемся, что в "От сети:" там тоже стоит 100%. Если не стоит - ставим. Жмем ОК, все закрываем. Теперь почти все ОК!
Решение, часть 2.
Запускаем FL, запускаем Диспетчер задач, идем на вкладку "Процессы", правым кликом на "FL.exe" устанавливаем Приоритет - либо Высокий, либо вообще Реального времени. (см. Прим. 1)

Дальше, там же, нужно проверить, доступны ли FL все ядра. У меня, по умолчанию, оказались доступны. Но... мало ли, лучше проверить. Точно так же, правым кликом в списке процессов по "FL.exe" кликаем "Задать соответствие", проверяем, все ли процессоры заданы, и если не все, то задаем все.
Ну и последнее, самое простое - и единственное, что делается в самом FL.
Меню - Options - Audio settings. Делаем активными пункты "Multi threaded generator processing" и "Multithreaded mixer processing".

Наслаждаемся :).
P.S. Надобно отметить, что индикатор загрузки процессора в FL все равно будет работать криво и показывать цифры, отличные от показываемых в Диспетчере задач или Мониторе ресурсов. Решения этой проблемы пока не нашла. Но оно и не принципиально, пока никак не влияет на звук :).
Прим. 1. Теоретически, можно создать в папке с FL файл запуска, например FLStart.cmd, написать в нем
START /D "C:\Program Files\Image-Line\FL Studio 9" /REALTIME FL.exe
и в дальнейшем запускать FL с помощью этого файла сразу с приоритетом реального времени. Но этот трюк вот именно с FL почему-то не работает. Почему - пока не знаю.
Comments
есть отдельный буфер всей прогии буферы каждого плагина
при перегрузке фрукт просто тормозит-полоска останавливается треск тут не причем
А "Первичный звуковой", если он вас так заинтересовал - потому что внешняя Motu в момент делания скрина была выключена : )
память ёк 2 @ Barnaul electric music
это делается несколько иначе
в пункте втором я так и не понял если индикатор показывает тоже самое как проверить что все ядра запущены?
кстати есть сторонняя программа для запуска любой программы в многоядерном режиме
однако я проверял по диспетчеру как было так и осталось
сомнительно что 32 битный фрукт вообще может юзать несколько ядер
Снимок333 @ Barnaul electric music
Проверить, что все ядра запущены можно элементарно, через тот же монитор ресурсов. Там же видно и то, сколько именно ядер использует в процессе рендеринга реального времени FL. Скрин не стала делать, показалось, что это очевидно : ).
32-битный фрукт реально юзает ВСЕ ядра. На Мониторе ресурсов это прекрасно отображается. Ну и... производительность и отсутствие хрипений во время воспроизведения тоже говорят сами за себя.
вот и весь прикол
проводник диспетчер итд итп а фрукт вполне может работать и на одном
вопрос не в том даже скока ядер пользует фрукт а в том что все эти манипуляции ничего не дают в приросте производительности фрукта мне кажется что он и одно то ядро использует не полностью
( у меня 4 ядра настоящих:)
Ну, описанные процедуры реально подняли производительность как минимум вдвое. На то, что раньше хрипело и шипело, оказалось можно повесить еще множество инструментов и обработок - и ничего не хрипит. Это главное.
при полной загрузке проца-фрукт просто останавливается и виснет
хрип тут не причем
а насчет хрипа я уже сказал повторятся не буду
вообще я читал вопрос о многоядерности на оф сайте имаджлайна-там программисты предпочли промолчать
воть:)
это-суперадминистратор он защищает систему от падения @ Barnaul electric music
а то что фрукт не на одном ядре нигде не посмотришь
если не получится значит вы не суперадминистратор
а если получится то система упадет:)))
я проверил-я суперадминистратор правда корзина почемуто оказалась пустой походу после перезагрузки винда не запустится
во попал мня
гыгыгы
До ваших манипуляций винда действовала по принципу "дам фруктам одно ядро для начала, а понадобится больше - дам больше". Фрукты выедали максимум того, что умеют (одно ядро); винда честно в Диспетчере задач рисовала загрузку на одном ядре, потому что она же сама больше не выделяла, так что весь груз фруктов лежит на единственном выделенном ядре.
Вашими манипуляциями вы заставили винду не умничать, а выделять все ядра. Она и выделяет. Фрукты все равно выедают столько, сколько могут (в данном случае уже больше одного ядра, потому что вы включили multithreading). Допустим, 4 ядра, то есть 50% мощности проца. Винда в Диспетчере задач честно показывает 50% загрузки; фрукты честно показывают 100%, потому что больше 4 ядер они не могут заюзать по причине тупости своей.
Почему же графики в Диспетчере выглядят так, как будто юзаются все ядра? Да потому, что каждую новую инструкцию ("а посчитай-ка мне вот это") винда случайным образом пихает на одно из свободных ядер. То есть винда-то честно пытается загрузить все 8 ядер, да только у фруктов не хватает мозгов выдавать больше 4 инструкций параллельно. (Я упрощаю, но идея примерно такая.)
То есть реально фрукты юзают 4 ядра, ибо больше не могут органически. Такие дела. :)
(П.С. Это не значит, что ваши манипуляции бесполезны. Возможно, что фрукты детектируют количество ВКЛЮЧЕННЫХ ядер, и поскольку оно меньше 4 - загружают только 2, или вообще одно.)
А манипуляции конечно небесполезны. Были бы бесполезны - я бы и не писала : )
хотя в системе было написано что куб 32 битный как бы он там не кричал-раздачу закрыли чтото мне подсказывает что тут такая же шутка юмора:)
www.youtube.com/watch?v=SyRBNu …
никаких фокусов не применяю на своём i7 с 8 г памяти. открываю 15 Омнисфер, несколько триллианов, 5 ЗэтТриА, корговские сины + эффекты от Вэйвс, на каждый канал по паре компрессоров мазератти, дорожек 25 с вавами - и загрузка проца - 20%. во время проигрывания прыгает до 27-29%, так что вешаю ещё на мастер Izotope Stutter и фигачу лайвом по мидихе. я конечно столько в треке синтов не использую никогда, но в качестве эксперимента попробовал.
фрукт сдох бы только от упоминания о таком количестве накруток... и кстати сдох, когда пробовал ;)
имхо: Фрукт, изначально будучи всего лишь (непонятнокакимполухакерским) приложением к Кубу, всего просто-напросто народная прога, очень удобная, гибкая и громкая. и несмотря на новые версии, которые "теперь звучат и в сто раз круче" (как заявляют доморощенные "профессионалы") всё равно останется софтом для начинающих. народ! фрукт написали хакеры, которые сотворили Fast Tracker 2!!! и никогда они не смогут сравнится с старым добрым Steinberg'ом.
совет: если ты обладатель навороченного бука, то поставь себе наконец софт, который будет использовать все возможности. если вин7 - куб 5ый и в перспективе 6ой. и как следующий этап развития - мак и лоджик.
поменяй ОС,
смени пол,
тапки купи в виде собачек,
волосы перекрась
есличо
до меня например оч долг доходило, что в кубэйсе инструментальный канал и канал в плейлисте - одно и тоже
другим качеством и принципом работы. на самом деле, Куб интуитивно понятен. и расцветка дружелюбна - приятно работать ;)
доказывать, что Куб лучше по звуку не буду - кроме меня, есть ещё куча спорщиков на эту тему)))
скажу лишь, что в профессиональной студии, никто никогда не увидит в сетапе FL Studio.
я и так добился вполне приличного качества своих работ,
вконтакте в группе посвященной Cubase никто даже и не заподозрил, что треки были целиком и полностью сделаны в Жолудях.
Дело скорее в ОС. В будущем я планирую пересесть на макинтош.
и есть еще один момент:
во всех стандартных DAW, будь то Сubase, Logic, Reaper, Studio One или Live очень неудобно (сравнительно с FL) писать сложные драмлупы.
и что ни говори, ни одна из вешеприведённых DAW не обладает таким удобным pianoroll.
а так, что в производительности,
что в организации некоторых решений, FL Studio проигрывает всем вышеуказанным станциям.
-разумеется и в овоще можно добиться звука нормального, были б Руки и уши ;) но лично я считаю, что он портит звук.
-может в ОС. а может и в хосте. на мак конечно не плохо было б перейти, но вот дилемма - либо огромное количество сломанного софта и 7ка) либо всё за бабки (приличные кстати), но зато Мак Ось)))
-один мой знакомый, работающий в студии, где разумеется стоят одни маки, сказал, что стабильность их работы это всего лишь раскрученный миф. не знаю, верить или нет)
-по поводу драмлупов - несогласен. поставь GURU и юзай рекс2 файлы. они все в 24 бит и 48 кГц. всё слайсится на ноты, причём не обрезанные а отдельными шотами )
-по поводу пианоролла - дело привычки. соглашусь только что графики чертить только углами в Кубе это не доработка (((
я хочу сам.
собственными ручками сначала писать ваншоты буквально из говна,
а потом объёдинять их в лупы.
и да,
рекс2 фруктовый слайсер начал кушать ооочень давно
-я "сам" этим занимался очень долго, но пришёл к выводу что это не столь важно. многие легендарные композеры ритмы на грувах делают и не парятся. и если нет харда, для хорошей компрессии, лучше использовать грувы. "свои" петли, сделанные из говна, и звучат соответственно. ;)
-но это кому как опять же
-да и к тому же, смотря какую музыку писать
-знаю. но он их проглатывает, утрируя звук. разница огромна. слайсер предательски грязен.
я не против Фруктов. я просто за качество ;)
а под говном понимаю сырые ваншоты снятые с драм-машинок и драмсинтов,
ничем не обработанные.
посоветуешь какой-нибудь годный и полный туториал по кубу?
самолюбие ;) сие есть архаизм, пережиток прошлого ;)
и кстати, большинство врёт по поводу того, что САМИ пишут с синтов шоты (я не имею в виду тебя)
это конечно весьма занимательно, но времени занимает. я за это время сделаю три качающих ритм партии на грувах (разумеется не комбинированных) и никто никогда не поймёт, что они собраны из библиотек.
хотя когда требуется тщательная проработка ритм секции, я скрупулёзно собираю из сэмплов)
есть куча добрых самаритян, которые записывают свои игрушки и выкладывают в сеть,
и еще парочка добрых самаритян которые это всё коллекционируют и выкладывают всё вместе для удобства.
ну тебе повезло действительно,
что из уст в уста,
не на пальцах, а воочию. редко такое бывает.
а что, треки не пробовал писать?