Haibin Zhao

iPhotron v4.2.0 — 3× Faster Library Scanning & Ultra-Smooth Large-Library Browsing

🌟 What’s New in v4.2.0

⚡ ParallelScanner — Up to 3× Faster Library Scanning

We rebuilt scanning around better concurrency, scheduling, and IO utilization to dramatically cut scan time:

  • Improved parallelism + task partitioning to better use multi-core systems

  • Smarter scheduling/queueing to reduce idle time and contention

  • Higher IO throughput with less unnecessary work and fewer bottlenecks

🗂️ Faster Move/Delete — Smoother File Operations

We significantly sped up file operations to keep the app responsive during heavy library work:

  • Smarter batching to reduce per-operation overhead

  • Less duplicate work (fewer redundant checks/refreshes)

  • More consistent performance for bulk actions

🏗️ MVVM Refinement — A More Stable, State-Driven UI

Addressing feedback like: “Complex states feel inconsistent, refresh behavior is unstable, maintenance is costly.”

  • Stronger View / ViewModel / Model boundaries with clearer responsibilities

  • Standardized UI state model (Loading / Content / Empty / Error) to reduce edge-case divergence

  • More consistent unidirectional data flow: Views subscribe to outputs; all mutations go through the ViewModel

  • Better testability via ViewModel + UseCase/Service layers for safer regressions

  • Lifecycle-aware resource governance to prevent leaks and reduce background overhead

📸 Major Scrolling Performance Boost — Dramatically Smoother Browsing

Addressing feedback like: “Scrolling drops frames, fast flicking loads thumbnails slowly, occasional freezes.”

  • Lighter rendering pipeline: fewer unnecessary re-renders and layout recalculations

  • Improved list/grid virtualization: better visible-range computation and reuse strategy

  • Smarter thumbnail loading: prefetch + prioritization for on-screen items, progressive loading, better decode scheduling

  • Stronger multi-level caching (memory + disk) with smarter eviction to reduce redundant decoding

  • Better async coordination (debounce/coalesce) to avoid main-thread contention during rapid scrolling

  • Lower memory churn to reduce GC/ARC pressure and micro-stutters

29 views