Igoresha.dev
89 subscribers
370 photos
17 videos
21 files
70 links
Пытаюсь сделать окружающий мир чуточку лучше.

Алсо, угараю по геймдеву, люблю дизайн и фотографию

https://www.igoreshadev.ru

#ИнтересностиПолезности
#релиз
#мемы
#петпроекты
#сниппеты
#интересности
#полезности
#photo
Download Telegram
🪿 А этот пост про оптимизацию

Кстати да, немного ностальгии, старая версия (v1.7) аж 2023 года, которая в рантайме js хранила абсолютно всё библиотечное кушала на ~1600 мп3 треках невероятное кол-во оперативной памяти

Грубоговоря, если бы у вас было ~10.000 песен, то вам бы потребовалось 13гб оперативной памяти на старой версии плеера


Прирост очень сильный после того, как я переписал всё что можно было с учетом эвристик, которые просились.
Принципиальные отличия актуалочки, от того месива:

• использую бд для треков / папок + кверю данные
• виртуализация списков (грубоговоря, в памяти отрисовщика интерфейса хранится ток то, что нарисовано на экране)
• хранение обложек со сжатием их в 64х64
• раньше я криво делал контекстные меню (их было столько, сколько треков в списке, сейчас оно одно (да, всё правильно, если у вас 10 тысяч треков, то приложение где-то хранит 10 тысяч контекстных окон, которые ждут своего часа))
• да и не только контекстные меню, все элементы списка были обработаны на скорую руку

🔥 Также мощный прирост при холодном запуске, на macbook m2 pro всё это мессиво должно было загрузиться в оперативку, и это занимало до 10 секунд (при библиотеке в 1600 треков, напомню), текущая версия запускается за ~0.5 секунд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥21