В Linux стандартными средствами можно использовать часть оперативной памяти как диск. Для этого требуется указать тип монтирования tmpfs в команде mount
mount -t tmpfs -o size=5G tmpfs /mnt/ram
Теперь путь /mnt/ram можно использовать как обычный каталог. Для чего это может быть нужно?
▫️ Скорость работы с таким каталогом выше чем многие SSD и тем более HDD.
▫️ Если у вас очень быстрый SSD на NVMe M.2 то такой способ особо не прибавит вам скорости, но поможет сохранить ресурс SSD когда требуется обрабатывать очень много мелких файлов и оперативка позволяет выделить нужный объем.
▫️ Оперативка это энергозависимая память, поэтому выключении питания все файлы безвозвратно теряются. Такой "non persistent" каталог гарантирует удаление временных файлов.
Я написал небольшой скрипт для условного теста и сравнения скорости копирования файлов между SSD и RAM.
Вот мои результаты:
Single File Size: 30.0Gb
ssd > ssd: 0:00:12.850 / 2.3Gb/s
sdd > ram: 0:00:06.453 / 4.6Gb/s
ram > ram: 0:00:06.995 / 4.3Gb/s
ram > sdd: 0:00:06.217 / 4.8Gb/s
Dir size: 32.7Gb, File count: 11127
ssd > ssd: 0:00:15.063 / 2.2Gb/s
sdd > ram: 0:00:08.486 / 3.9Gb/s
ram > ram: 0:00:08.032 / 4.1Gb/s
ram > sdd: 0:00:07.026 / 4.7Gb/s
Скрипт для теста ↗️
На моём железе прирост скорости ~2x. Плюс экономия ресурса SSD.
В Windows такой фишки по умолчанию нет, но обязательно найдутся аналогичные решения
#linux#triks
🤖Как уменьшить задержку воспроизведения видео? Решение есть в AndroidX Media3
Одна из задач при скролле контента в ленте - убрать задержку показа/воспроизведения контента, чтобы у пользователя не было ожидания или оно было минимальным (при условии стабильного интернет соединения).
Для более быстрого старта воспроизведения видео стоит использовать Preload API в ExoPlayer из Jetpack Media 3. В посте приложил демонстрацию как это реально уменьшает задержку старта воспроизведения.
🔗 Опытом адаптации PreloadManager в приложение поделились в статье
🔗 Руководство по интеграции PreloadManager в документации
* Instagram признан экстремистcкой организацией на территории Российской Федерации
#Android#AndroidDev#ExoPlayer
🤖Демонстрация (EN,5м) работы предзагрузки видео в Media3 Expoplayer 1.4.0. Показывается пример кода как это реализовать, а также впечатления от использования.
🔗Альтернативная ссылка
#android#медиа#exoplayer
🚀Media3 1.8.0 — апдейт, который стоит внедрить прямо сейчас
Google продолжает прокачивать медиа API, и в этом релизе есть фичи, которые экономят время разработки и улучшают UX.
📺ExoPlayer
👉 Плавная перемотка: новый ScrubbingMode делает скролл прогресс-бара без отрыва пальца супер-отзывчивым. Пользователь почувствует разницу.
👉Встроенная видео-реклама: нативная поддержка Ads Interstitials в стриминге — меньше костылей.
👉 Длительность видео без проигрывания:
val duration = MetadataRetriever
.Builder(context, mediaItem)
.build()
.use { it.retrieveDurationUs().await() }
👉PreCacheHelper — загрузка контента по частям для более быстрых стартов.
🎵 MediaSession
👉 Плеер в шторке не исчезает сразу после паузы — пользователю проще вернуться к просмотру.
✂️Transformer API
👉 Экспериментальная обрезка видео через MP4 edit list.
👉 Опция CodecDbLite — ускоряет кодирование, подбирая оптимальные настройки под чипсет:
Transformer.Builder()
.setEncoderFactory(
DefaultEncoderFactory.Builder()
.setEnableCodecDbLite(true)
.build()
)
.build()
💡Почему обновляться сейчас
👉 Меньше кастомного кода — больше нативных возможностей.
👉 Повышение отзывчивости плеера = выше удержание пользователей.
👉 Новые API для подготовки к интеграции рекламы и улучшенного UX.
Подробнее в анонсе или в changelog
#android#AndroidDev#Jetpack#Media3#ExoPlayer