💎 Способы решения работы с большими данными: Проблема наивной предзагрузки
При работе с большими данными — сеть один из ключевых ресурсов. Когда ты работаешь с текстом ты о ней почти не думаешь. С видео, медиа, тяжелыми файлами это напрягает юзера.
Я запускаю небольшую серию постов о недооценённой теме — управлении трафиком. Как я уже писал ранее, что чем больше размер данные, тем умнее нужно потреблять сеть.
👎 Наинвая стратегия
Допустим, у вас есть плеер или любой другой тяжелый контент. Самое очевидное решение загружать текущий файл + всегда предзагружать N следующих. Звучит логично. Так делают многие.
Но в реальных условиях это приводит к проблемам:
🟣текущий поток начинает конкурировать с предзагрузкой
🟣буфер проседает
🟣сеть перегружается
🟣растет latency
🟣юзер получает фризы
В зрелых системах появляются Task Manager'ы. Они следят за подгрузкой текущего элемента и управляют приоритетом следующей задачи. Его задача следить за состоянием текущего буфера, мониторить сеть, динамически управлять приоритетами.
Простой пример: У вас есть видео размером 1000 MB.
Если буфер падает ниже критического уровня:
🔘текущий файл получает максимальный приоритет
🔘предзагрузка понижается или останавливается
Если буфер в норме:
🔘можно аккуратно подгружать следующий контент
🧍♀️ Тут важно запомнить: тем меньше нужно скачивать — тем быстрее задачи будут выполняться.
1/3
Post #3769
2.06K

