View Pool Management for Smooth Scrolling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Rendering collections of items is resource-intensive, leading to memory and processor utilization issues, particularly on client devices, which can result in decreased battery life and perceivable delays or 'jerkiness' during scrolling operations.

Innovation Solution

Implementing a method where only views within the viewable window are initially rendered, with background rendering of additional views occurring when resource utilization is low, using a prioritized queue to manage view pool size and optimize operations by overwriting or reusing views instead of instantiating new ones.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If only views within the viewable window are rendered, then memory utilization is decreased, but processor utilization during scrolling operations increases

Engineering Contradiction:
Improvememory utilizationVSAvoidprocessor utilization during scrolling
Core Design Contradiction:
Quantity of substanceVSPower

Solution Approach 1:

The system pre-renders views for items that are not currently in the viewable window but are expected to be scrolled into view soon. This preliminary action stores these rendered views in a view pool, so when scrolling occurs, the pre-rendered views can be immediately displayed without requiring intensive processor operations during the scrolling action itself.

Inventive Principle:
Principle #10Preliminary action

2Power

If views are pre-rendered and stored in a pool, then processor utilization during scrolling is minimized, but memory utilization increases

Engineering Contradiction:
Improveprocessor utilization during scrollingVSAvoidmemory utilization
Core Design Contradiction:
PowerVSQuantity of substance

Solution Approach 1:

The system applies different quality levels to different views in the pool. Views that are closer to the current viewable window are maintained with higher quality and longer retention, while views farther away may use lower quality or be overwritten sooner. This local quality differentiation optimizes memory usage by allocating more memory to views that are more likely to be displayed soon.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If the view pool size is increased, then scrolling smoothness is improved, but memory constraints are exceeded

Engineering Contradiction:
Improvescrolling smoothnessVSAvoidmemory constraints
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the view pool size based on available memory resources and current scrolling behavior. When memory is abundant, the pool size increases to improve scrolling smoothness. When memory constraints are detected, the pool size is reduced or views are overwritten. This dynamic adjustment allows the system to optimize scrolling performance while adapting to changing memory conditions.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8996987B2List view optimization
Publication Date: 2015.03.31 APPLE INC
  • US8996987B2 patent drawing
  • US8996987B2 patent drawing
  • US8996987B2 patent drawing

AI summary

Techniques are provided for optimizing operations, such as scrolling, that move rendered views for items in a collection relative to a viewable window. An application initially renders only those views within the viewable window. In a background process, the application also builds a pool of rendered views that are outside of the viewable window. Background rendering occurs is timed to not interfere with the user's experience. The pool is constrained in size so as not to over-utilize device memory. When a new item is scrolled or otherwise moved into the viewable window, the application first checks the pool to determine if a view of the new item is already rendered. If so, the application simply displays the pre-rendered view, resulting in minimal processor utilization. The application thus provides the user with a “smoother” scrolling experience. A priority queue for identifying views to replace or overwrite is also discussed.