Оптимизация Wndows 7 под Fl studio (для ноутбуков)

Форум раздела «Всё о FruityLoops» на MixGalaxy.ru. Обсуждаем всё, что относится к созданию музыки в программах FruityLoops и FL Studio.

Модераторы: Sibson, fat, Till Ulenspiegel, Yuri Prime, VAD, Deeman., Troshkin, Vospi, SD, Promension, Hans Pfaal, Monowood

Оптимизация Wndows 7 под Fl studio (для ноутбуков)

Непрочитанное сообщение FormatAL » 29 дек 2011, 19:23

Оптимизация работы 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 почему-то не работает. Почему - пока не знаю.


Copy/paste : http://aeterna.promodj.ru/blog/532802.html
Последний раз редактировалось FormatAL 05 янв 2012, 20:56, всего редактировалось 1 раз.
Аватара пользователя
FormatAL
Pro Member
 
Сообщения: 350
Зарегистрирован: 13 сен 2007

Непрочитанное сообщение FormatAL » 29 дек 2011, 19:30

Ещё есть вот такая утилита
http://www.coderbag.com/Programming-C/Disable-CPU-Core-Parking-Utility
Аватара пользователя
FormatAL
Pro Member
 
Сообщения: 350
Зарегистрирован: 13 сен 2007

Непрочитанное сообщение SD » 29 дек 2011, 20:40

У меня в хр был такой исполняемый файл

запуск пресета энергосбережения с отключённым энергосбережением
запуск фл
запуск основного пресета энергосбережения

Но в седьмой венде хз как правильно настроить.
Аватара пользователя
SD
Модератор
 
Сообщения: 16232
Зарегистрирован: 27 янв 2005
Откуда: СПб

Непрочитанное сообщение Galova » 04 янв 2012, 22:35

если плагины во фрукте не в состоянии побить процесс на число потоков равное числу ваших ядер то этот трюк нихрена не даст.

более того рассказ про отключение UAC через командную строку и "настоящего администратора" - фуфло ламерское, потому что запуск командной строки или regedit с указанием "от имени администратора" дает аналогичный эффект непонятному шаманству с бубном.

помимо этого есть профиль "максимальная производительность" в опциях энергосбережения.

а для пользователей XP есть утилита CPU-Control которая реально помогает каким то особым образом распихать процесс на нужное число потоков в обход планировщика винды который этим занимается. под 64 бит семеркой эта утилита не работает.

изза планировщика винды мы часто видим в загрузке фл 100% а в диспетчере задач например 30% - потому что программа реально дает, допустим два-три потока, и забивает два-три ядра на 100%, изза чего фрукты выдают под загрузкой процент максимально занятого ядра. А вот виндовский планировщик потоков уже размазывает автоматом эти два три потока на все ядра изза чего мы видим пропорциональную загрузку по всем ядрам вместо 100%. Так полная загрузка пары ядер растекается на все 4 у четырех-ядерных или 6 - у шестиядерных процессоров.

если бы тупой фрукт и его или сторонние плагины загруженные в нем умели определить число ядер и заспределить ВСЕ процессы по ним пропорционально то мы видели бы более рациональное использование многоядерности и соответственно более пропорциональное мощи процессора.

и еще.

в названии топика надо было написать "оптимизация НА НОУТБУКАХ"
Аватара пользователя
Galova
Full Member
 
Сообщения: 151
Зарегистрирован: 01 дек 2004

Непрочитанное сообщение FormatAL » 05 янв 2012, 21:13

Я тут сравнивал , пока было нечего делать , с Reaper и со Studio One )

Фрукт использует ресурсы похуже ! Но у Reaper со Studio one пока ещё тоже загрузка не совсем эффективна ... Reaper оказался у меня лидером по отношению загрузки DSP программы и диспетчера задач Windows 7 ) ....нагружал плагином Slate digital FG - X ... не учёл я только одного , что оптимизация плагина , под много поточность тоже играет не малую роль )
Аватара пользователя
FormatAL
Pro Member
 
Сообщения: 350
Зарегистрирован: 13 сен 2007

Непрочитанное сообщение Galova » 05 янв 2012, 21:36

FormatAL писал(а): ... не учёл я только одного , что оптимизация плагина , под много поточность тоже играет не малую роль )


это сто пудов
Аватара пользователя
Galova
Full Member
 
Сообщения: 151
Зарегистрирован: 01 дек 2004

Непрочитанное сообщение SD » 18 янв 2012, 03:39

В общем, ДИКО ВАЖНО про энергосбережение.

Заходим в cmd, пишем powercfg -l, он выведет ИД каждого из планов энергосбережения.

Потом в папочке фл создаём файл .cmd, в который вписываем:

powercfg -setactive ИД режима высокой производительности

"FL (extended memory)"

powercfg -setactive ИД режима с энергосбережением для обычной работы.

У меня выглядит так:

Код: Выделить всё
Powercfg -setactive  8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
"FL (extended memory)"
Powercfg -setactive 448b6ea4-3af3-4d6a-995c-eb0b0a50541d


Затем сохраняем, создаём там же ярлык, делаем у ярлыка значок с хурмой и его на рабочий стол например. И - вуаля - на момент запуска фл энергосбережение отрубается, с закрытием ФЛ врубается.

:invent:
Аватара пользователя
SD
Модератор
 
Сообщения: 16232
Зарегистрирован: 27 янв 2005
Откуда: СПб

Непрочитанное сообщение SD » 18 янв 2012, 03:46

Главная беда метода в том, что я не нашёл как этот ярлык прилепить к вендовой панели задач. Но мне помогли запилить лончер в виде .ехе, и я щаслив. :invent:
Аватара пользователя
SD
Модератор
 
Сообщения: 16232
Зарегистрирован: 27 янв 2005
Откуда: СПб

Непрочитанное сообщение FormatAL » 19 янв 2012, 22:34

SD писал(а):Главная беда метода в том, что я не нашёл как этот ярлык прилепить к вендовой панели задач. Но мне помогли запилить лончер в виде .ехе, и я щаслив. :invent:



Спасибо , SD !!! Всё работает !! :invent:
Аватара пользователя
FormatAL
Pro Member
 
Сообщения: 350
Зарегистрирован: 13 сен 2007


Вернуться в Всё о FruityLoops и FL Studio

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Наши проекты: MixGalaxy.ru | Всё о FruityLoops и FL Studio на MixGalaxy.ru | Всё о Propellerhead Reason на ReasonMusic.ru