Оптимизируемся по полной

После релиза AIMP v3.0 мне на почту стало приходить много писем по поводу того, что программа стала работать медленнее и кушать больше, нежели AIMP2. В данной заметке я хотел бы рассказать, из-за чего так получилось, и что с этим можно при желании сделать.

Время запуска и объем используемой памяти

Плагины

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

Сейчас в AIMP существуют два вида плагинов – загружаемые при запуске, загружаемые по мере надобности. К последнему виду относятся плагины визуализации – плагин загружается при включении визуализации, и выгружается при ее выключении.

Решение: Отключить ненужные и редко используемые плагины (см. Настройки \ Плагины).

Скины

В AIMP3 был существенно изменен скин движок, а, соответственно, и внутренняя структура скинов – благодаря этому удалось увеличить скорость загрузки скина, однако, на текущий момент это не сильно заметно по следующим причинам:

  • Большая часть скинов была сделана для AIMP2, поэтому при загрузке плеер тратит дополнительное время на преобразования скинов из старого формата в новый.
  • Некоторые скины включают в себя дополнительные шрифты, которые интегрируются в систему при загрузке.

Решение: Использовать оригинальные скины для AIMP3, стараться избегать скинов со встроенными шрифтами.

Плейлисты

В AIMP3 появился умный загрузчик плейлистов – он загружает содержимое плейлистов по мере надобности, поэтому вам больше не нужно беспокоиться о том, сколько плейлистов у вас открыто в плеере – количество открытых плейлистов больше не влияет на время загрузки плеера.

Функции интеграции в систему

При запуске программа интегрируется в панель задач – добавляет иконку в область уведомлений и расширяет функционал кнопки на панели задач (доступно начиная с Windows 7). В зависимости от состояния “здоровья” и загруженности ОС выполнение этих двух функций может занимать до 10 секунд (!) (в нормальной ситуации эти функции выполняются за доли секунды).

Решение: Отключение данных функций.
Как было в v2: AIMP2 так же имеет данную особенность, однако в нем расширения функционала кнопки на панели задач реализовано отдельным плагином, который по умолчанию был отключен.

Кэширование проигрываемого файла

Кэширование позволяет избежать частых обращений к жесткому диску по мере проигрывания всего файла, вместо этого файл загружается в память на момент воспроизведения, и далее плеер уже играет его из памяти. В зависимости от размера буфера, файл может быть загружен в память целиком или частично. По умолчанию размер буфера равен 5 МБ (Справедливо только для AIMP3.0).

Решение: Установить размер буфера в 0 (см. Настройки \ Воспроизведение).

Нагрузка на CPU

Анимация и графические эффекты

С появлением поддержки полупрозрачных текстур и сопутствующих им эффектов (размытие фона, анимация и т.п), скин-движок стал требовать больше ресурсов CPU для отрисовки. Конечно, на современном железе разницы практически не видно, однако на старых системах разница существенная – нагрузка поднимается вплоть до 100%.

Я встречал в Интернете советы, использовать скины от AIMP2, дабы избавиться от полупрозрачности и тем самым ускорить отрисовку. На самом деле такое решение работать не будет – движок один и работает он со всеми версиями скинами одинаково – скин-движок преобразует старые скины в новый формат.

Решение 1: На вкладке “Интерфейс” в настройках программы собраны опции, которые позволяют отключить большинство графических примочек.
Решение 2: Использовать скины с наименьшем количеством подвижных элементов – без уровней сигнала, дисплея визуализации, дисплея спектра и т.п.
Решение 3: Отключить анимацию бегущей строки (см. Настройки \ Шаблоны).

Плейлист

Плейлист современной версии AIMP отображает огромное количество информации, соответственно, чем больше информации отображается, тем больше времени уходит на ее отрисовку. Наиболее тяжелый элемент – информация об оценке трека (не важно, в каком виде она отображается – в графическом или текстовом).

Решение: Отключить отображение ненужных элементов плейлиста (см. Настройки \ Плейлист \ Настройки отображения).

Настройки звукового движка и звуковые эффекты

Несомненно, на ряду с графическими эффектами звуковые эффекты играют не последнюю роль в использовании ресурсов процессора.

Я встречал мнение, что для достижения наилучшего звучания, нужно ставить в настройках программы максимально доступное качество. Это неверно. Звучание лучше не станет, конечно, плеер попробует достроить сигнал до нужного формата, но оригинал, записанный изначально в этом формате, дал бы куда лучший результат. Завышая параметры качества вывода звука, вы повышаете нагрузку на процессор. Во-первых, когда частота дискретизации входного файла не совпадает с частотой вывода, начинает работать ресемлер. Во-вторых, чем “выше” параметры вывода, тем больше данных пропускает через себя звуковой движок.

Решение 1: Выставить параметры вывода звука равными формату большинства ваших аудио файлов.
Решение 2: Стараться не использовать эквалайзер, а так же другие звуковые эффекты и фильтры.

Хирургическое вмешательство

AIMP представляет собой модульную структуру – каждую функцию / набор функций сходных по тематике реализует отдельный модуль. Большая часть модулей зашита в ядре (AIMP3.dll), однако некоторые модули вынесены в отдельные библиотеки (DLL), которые не являются плагинами, но которые так же можно отключить. О них и пойдет речь. Сразу хочу предупредить, что отключение этих библиотек вы делаете на свой страх и риск.

Аудио конвертер

Если вы не пользуетесь аудио конвертером или каким-либо из кодеков – их можно удалить.

  • AIMP3ac.exe – основное приложение конвертера.
  • Modules\aimp_libvorbis.dll – кодировщик в формат OGG. Используется как конвертером, так и плеером для записи радио.
  • Modules\libFLAC.dll – кодировщик в формат FLAC. Используется на текущий момент только конвертером.
  • Modules\MACDll.dll – кодировщик в формат APE. Используется на текущий момент только конвертером.
  • Modules\wavpackdll.dll – кодировщик в формат WavPack. Используется на текущий момент только конвертером.
  • Modules\lame_enc.dll – кодировщик в формат MP3 (ставится отдельно). Используется на текущий момент только конвертером.

Стоит отметить, что из приведенных выше компонент, на плеер влияет только один – кодировщик в формат OGG.

Фонотека

Компоненты фонотеки интегрируются во все компоненты AIMP – это помогает обеспечить актуальность данных в БД.

  • AIMP3lib.dll – движок фонотеки, обеспечивает сбор статистики и контроль за актуальностью данных в БД. Интегрируется во все остальные приложения AIMP.
  • AIMP3lib.exe – приложение-браузер для БД фонотеки.

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

Вспомогательные модули

К вспомогательным модулям я отнес лишь один – aimp_mediakeys.dll, этот компонент реализует поддержку мультимедиа клавиш для некоторых видов клавиатур. Если без этого файла вы не испытываете проблем с мультимедиа клавишами – можете смело удалять его.

Замечание: Удаленные компоненты будут восстановлены после установки обновления или переустановки программы.

22 thoughts on “Оптимизируемся по полной

  1. Soolo

    Из всех перечисленных методов обычно использовал только отключение попиксельной полупрозрачности – заметно снижает нагрузку на WinXP.

  2. Xwansu

    Раньше в винампе отключал разные плагины, чтобы он быстрее загружался. И это помогало. Давно уже им не пользуюсь. В AIMP’е 13 входных плагинов, неплохо было бы добавить их подробное описание, чтобы юзер непоотключал что-нибудь нужное. Или это уже есть в справке? (Я не нашел)

      1. Xwansu

        Ok, пример. Возьмем первый попавшийся плагин Speex for the Bass library. Зачем он нужен, на что влияет, нужен ли он мне… Что будет, если я его отключу? Я, конечно, могу погуглить все 13 штук…

        1. Artem Post author

          Input плагины отвечают за то, какие форматы может проигрывать плеер. Данный плагин отвечает за формат Speex

          1. Xwansu

            http://www.speex.org/
            “Speex: A Free Codec For Free Speech”
            Т.е. я спокойно его могу отключить, т.к. у меня на ПК вообще нет файлов формата Speex? В первый раз о нем слышу 🙂

          2. Xwansu

            Теперь осталось разобраться, за какие форматы файлов отвечают оставшиеся плагины. Плагинов 13, а поддерживаемых расширений файлов 35.

  3. HX

    Спасибо. Попробуем.

    >> плеер тратит дополнительное время на преобразования скинов из старого формата в новый
    и куда он выкладывает новых обложек?

  4. music-freak

    в параметрах устройства “WASAPI: Windows Default” стоит 44100 Hz 32 Bit Stereo и изменить ничего нельзя. означает ли это, что AIMP3 изменяет битность?

    настройки аудио-интерфейса: 44100 Hz 16 Bit.

  5. overtube

    я изменил только частоту выходной дискретизации, и нагрузка заметно снизилась, спасибо :3

Leave a Reply