You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dynamic sliding keep-alive window (wantKeepAlive: true strictly for active post and immediate ± 1 neighbors), preventing open pages from accumulating indefinitely in the widget tree and bloating RAM up to 1.5 GB.
Proactive memory eviction (evict) for full-size images and decoding caches when scrolling beyond 2–3 items away.
Lightweight thumbnails (capped at 240 px) rendered for distant items during rapid browsing instead of mounting heavy high-resolution decoders.
Direct display-targeted image decoding bounds (memCacheWidth) scaled to physical screen resolution (screenWidth * devicePixelRatio) without excessive headroom multipliers.
Smart Memory GC & Watchdog:
Integrated OS low memory pressure observer (WidgetsBindingObserver.didHaveMemoryPressure) for instant decoded image buffer release.
Off-screen video players and hardware mpv textures are fully unmounted and disposed of when swiped away, immediately releasing GPU buffers and video RAM.
Resource Monitoring & Diagnostics
Live Diagnostics in "About":
Real-time metrics dashboard: physical process RSS, peak memory, decoded image cache with quick wipe button, process CPU usage (via /proc/self/stat), live network bandwidth/speed, and engine frame rate (FPS).
Floating On-Screen HUD:
Draggable, semi-transparent frosted-glass overlay across all screens.
Position persistence across sessions.
Independent visibility toggles for RAM, CPU, Network, and FPS.
Opacity slider (20% to 100%) and collapse-to-pill control.
Fixes
Linux AppImage Compatibility: Added runtime compatibility shim resolving dynamic libmpv.so.1 and libmpv.so.2 library loading across diverse Linux distributions.
Что нового в Prisma v4.1.3
Оптимизация памяти и производительности
Устранение утечки памяти в карусели постов:
Внедрено скользящее окно жизненного цикла страниц (wantKeepAlive: true только для активного поста и соседних ± 1).
Устранено накопление десятков открытых страниц в дереве виджетов, из-за которого ОЗУ раздувалось до 1.5 ГБ при длительном просмотре.
Реализована принудительная выгрузка (evict) полноразмерных изображений и кэша из RAM при отдалении более чем на 2–3 поста.
Для быстрого пролистывания на дальних позициях отображаются легковесные миниатюры (до 240 px) вместо тяжелых декодеров высокого разрешения.
Физический лимит декодирования (memCacheWidth) приведен в строгое соответствие с физической плотностью экрана устройства без избыточного множителя запаса.
Умный сборщик мусора (Smart Memory GC) и Watchdog:
Реализован системный наблюдатель WidgetsBindingObserver.didHaveMemoryPressure(), моментально сбрасывающий кэш декодированных картинок при нехватке памяти на устройстве.
Фоновый сторож автоматически очищает кэш liveImages при превышении безопасного порога потребления памяти (450 МБ RSS или 120 МБ в imageCache).
Освобождение видеоресурсов:
Видеоплееры и аппаратные декодеры неактивных постов теперь полностью уничтожаются при уходе с экрана, освобождая GPU и видеопамять.
Мониторинг ресурсов и Debug
Панель диагностики в «О приложении»:
Добавлен информационный блок в реальном времени: физическая память процесса (RAM RSS) и пиковое значение, размер кэша декодированных картинок в ОЗУ с кнопкой быстрой очистки, нагрузка на процессор (CPU %), входящий/исходящий сетевой трафик со скоростью в реальном времени и частота кадров движка (FPS).
Плавающее настраиваемое окно (HUD):
Полупрозрачный оверлей с матовым стеклом поверх всех экранов приложения.
Свободное перемещение пальцем с сохранением позиции.
Независимое включение/выключение отображения ОЗУ, ЦП, сети и FPS.
Ползунок настройки прозрачности от 20% до 100% и кнопка сворачивания в компактную плашку.
Исправления
Linux AppImage: добавлен динамический шим библиотек libmpv (libmpv.so.1 и libmpv.so.2) для бесперебойного запуска на современных и консервативных дистрибутивах Linux.