Browser Memory Caching via Dynamic Cache Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrently running web browser processes on devices with limited resources face challenges in memory management, as each process consumes significant memory, and existing mechanisms like copy-on-write and shared libraries are inefficient for sharing dynamic memory areas between arbitrary processes, leading to increased resource overhead and potential application crashes.

Innovation Solution

A mechanism is introduced to share and manage memory areas between web browser processes by utilizing a cache manager that identifies and prioritizes cache elements, implements JIT compilation for dynamic languages like JavaScript, and uses hash values to cache and reuse compiled native code, allowing for efficient memory sharing and management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a new process is created for each web site tab, then process isolation and robustness are improved, but memory consumption increases significantly

Engineering Contradiction:
Improveprocess isolationVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges memory spaces of multiple browser processes by identifying and sharing dynamically allocated memory areas that contain identical code and data. Instead of each process having separate memory allocations, the system consolidates redundant memory regions into shared areas, allowing multiple processes to reference the same physical memory pages while maintaining process isolation for execution.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements a copy-on-write mechanism where shared memory pages are copied to individual processes only when a process attempts to modify them. This allows processes to share read-only memory efficiently while maintaining the ability to have private modifications when needed, resolving the contradiction between sharing and isolation.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If copy-on-write mechanism is used for memory sharing, then memory allocation is reduced, but it only works for parent-child processes not arbitrary processes

Engineering Contradiction:
Improvememory allocationVSAvoidprocess relationship requirement
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent extends the copy-on-write mechanism to work between arbitrary processes, not just parent-child relationships. The system identifies shared memory areas across any browser processes and establishes sharing relationships regardless of process hierarchy, making the memory sharing mechanism universal and applicable to all browser tabs whether they share a common parent or not.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Quantity of substance

If shared libraries are used for code sharing, then memory overhead is reduced, but only read-only static memory can be shared

Engineering Contradiction:
Improvememory overheadVSAvoidmemory sharing flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent transitions from static shared libraries to dynamic memory sharing. Instead of pre-linking read-only code segments, the system dynamically identifies memory areas that should be shared based on runtime analysis of process memory contents. This allows both read-only and read-write memory to be shared dynamically, adapting to the actual needs of different browser processes.

Inventive Principle:
Principle #15Dynamics

4Reliability

If multiple browser processes run concurrently, then application robustness is improved, but system resource efficiency deteriorates

Engineering Contradiction:
Improveapplication robustnessVSAvoidresource efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges identical memory regions across multiple concurrent browser processes, allowing them to share physical memory pages while maintaining separate process identities. This enables robust multi-process operation with improved resource efficiency, as the system consolidates redundant memory allocations into shared regions that serve multiple processes simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9069876B2Memory caching for browser processes
Publication Date: 2015.06.30 NOKIA TECHNOLOGIES OY
  • US9069876B2 patent drawing
  • US9069876B2 patent drawing
  • US9069876B2 patent drawing

AI summary

There is disclosed a method in which a process is initiated to handle a set of information, which includes one or more resources. In the method the set of information is examined to determine whether the set of information includes a resource stored as a shareable cache element in a memory. If the determination indicates that the set of information includes a resource stored as a shareable cache element, the shareable cache element is used as the resource of the set of information.