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

После релиза 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 комментария

  1. Xwansu

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

      1. Xwansu

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

  2. HX

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

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

Добавить комментарий