11

Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?»3

Я занимаюсь реверс инжинирингом нового приложения Яндекс музыки уже больше года ( https://github.com/TheKing-OfTime/YandexMusicModClient )

У меня есть пару уточнений, возражений по поводу того что вы написали. Я буду рассказывать на примере Приложения, но к веб версии это тоже относится.
Кроме того сразу приложу свои спеки чтобы, они на мой взгляд чуть ниже средних по меркам 2025

Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?» Яндекс Музыка, Яндекс, Ответ на пост, Текст, Реверс-инжиниринг, Модификации, Длиннопост



До них просто не доходит, что вкладка браузера потребляющая до 30-80% всех ресурсов браузера, при том что музыка не играет - это плохо. Всё из-за фоновых процессов которые в 90% случаев пользователь не видит, а эта "цветопляска" на главной занимает достаточно много ресурсов <...>

Потребление ресурсов моего ПК на главной

Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?» Яндекс Музыка, Яндекс, Ответ на пост, Текст, Реверс-инжиниринг, Модификации, Длиннопост

Такое потребление может быть вызвано только в одном случае. Если у пользователя не поддерживается аппаратное ускорение WebGL. Причин у этого может быть много. От действительно старой видеокарты, до ручного внесения её в черный список производителем браузера (gpu-blacklist), или же банальным отключением аппаратного ускорения.
Из за этого шейдер анимации моей волны начинает рендерится процессором. Ему же для отрисовки шейдера приходится грубо говоря эмулировать видеокарту. Из за чего наблюдается такое потребление.

Фоновых процессов у новой Яндекс музыки на момент написания поста всего два.
Первый отвечает за стриминг треков. Если конкретнее за скачивание сегментов трека, дешифровку их, добавление их в буфер плеера, воспроизведении буфера, и т.п. Он же отвечает за всё то же самое, но для воспроизведения клипов (По сути яндекс переиспользуют плеер из кинопоиска)
Второй же отвечает за шейдер моей волны.

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

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

как и попытки постоянно долбиться в https://log.strm.yandex.ru/ (у многих это может быть заблокировано на уровне расширений). Было бы правильным ставить такое на паузу при неактивности вкладки (visibilitychange) но они не осиливают даже это.

Анимация ставится на паузу когда не видна на экране

Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?» Яндекс Музыка, Яндекс, Ответ на пост, Текст, Реверс-инжиниринг, Модификации, Длиннопост
Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?» Яндекс Музыка, Яндекс, Ответ на пост, Текст, Реверс-инжиниринг, Модификации, Длиннопост

По поводу https://log.strm.yandex.ru/ согласен. Им нужно было придумать более элегантное решение.

В качестве альтернативы предлагается псевдодесктопное приложение, что по факту является всего лишь ещё одним браузером (с соответствующими аппетитами) с одной вкладкой. Написан он ведь на фреймворке Electron, что изначально предполагало лишь прототипирование интерфейсов, для понимания нужно ли это целевой аудитории или нет.

В том то и дело что изначально предполагало лишь прототипирование интерфейсов.
Сейчас это мощный инструмент для построения кроссплатформенных приложений.
На нём написаны и прекрасно работают например Visual Studio Code и Discord.
Мнение у людей по поводу Электрона осталось где то в 2015 году, что печально.

К сожалению мне до сих пор не удалось поговорить с кем нибудь из команды разработчиков Яндекс Музыки. Так что действительно косячные моменты я стал исправлять сам в свой модификации для настольного приложения. https://github.com/TheKing-OfTime/YandexMusicModClient

В ней добавлены очевидные фичи которых по какой то причине до сих пор нет в ванильной версии.

Ответ VixVivus в «Яндекс Музыка, ты навсегда останешься такой Ужасной?» Яндекс Музыка, Яндекс, Ответ на пост, Текст, Реверс-инжиниринг, Модификации, Длиннопост