Browser Memory Caching via Dynamic Cache Sharing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
4Reliability
If multiple browser processes run concurrently, then application robustness is improved, but system resource efficiency deteriorates
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.
Data Source
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.


