Skip to content

v4.1.3 – Resource Monitoring, Smart Memory GC & Carousel Optimizations

Choose a tag to compare

@RarDog RarDog released this 02 Oct 15:59
· 8 commits to main since this release

What's New in Prisma v4.1.3

Memory & Performance Optimizations

  • Post Carousel Memory Leak Resolution:
    • 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.
    • Proactive background watchdog automatically trimming liveImages cache when physical RAM usage approaches safe watermarks (450 MB RSS or 120 MB imageCache).
  • Video Resource Deallocation:
    • 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.

Загрузки / Downloads