Low Memory Application Killer for Compute Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Embedded systems and mobile devices face challenges in managing memory effectively, leading to unacceptable user experiences due to low memory conditions, as they cannot employ traditional swap space methods, resulting in slow and unresponsive applications.
Innovation Solution
A compute device is configured to determine the quality of user experience by measuring system benchmarks and storing indications in a database, allowing or killing applications based on expected performance, using a low memory application killer module to proactively manage memory usage and prevent resource shortages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If traditional swap space methods are used to manage memory, then physical memory can be transferred to secondary storage, but embedded systems and mobile devices cannot employ this approach due to system constraints
Solution Approach 1:
The system proactively determines the quality of user experience for different application combinations and stores this information in a database before memory issues occur. When an application is launched, the system checks the database to predict potential memory problems and prevents them by controlling application launches beforehand, rather than reacting after memory becomes insufficient.
Solution Approach 2:
The system establishes a feedback loop where user experience quality is measured and stored, then used to inform future application launch decisions. The low memory application killer module uses stored quality indicators to determine whether to allow or kill applications, creating a closed-loop control system that continuously optimizes memory management based on observed performance.
2Quantity of substance
If a low memory application killer is used to kill applications when memory is low, then memory pressure is relieved, but applications run slowly and become unresponsive before the low memory condition is detected
Solution Approach 1:
The system proactively determines the quality of user experience for different application combinations and stores this information in a database before memory issues occur. When an application is launched, the system checks the database to predict potential memory problems and prevents them by controlling application launches beforehand, rather than reacting after memory becomes insufficient.
Solution Approach 2:
The system segments the memory management problem by evaluating each application combination individually and storing quality metrics for specific sets of applications. This allows granular control over which applications to allow or kill based on their specific memory characteristics and user experience quality, rather than applying blanket memory management rules.
3Ease of operation
If applications are allowed to run without proactive memory management, then user experience quality may be maintained initially, but system resources become depleted leading to slowdowns and crashes
Solution Approach 1:
The system establishes a feedback loop where user experience quality is measured and stored, then used to inform future application launch decisions. The low memory application killer module uses stored quality indicators to determine whether to allow or kill applications, creating a closed-loop control system that continuously optimizes memory management based on observed performance.
Solution Approach 2:
The system proactively determines the quality of user experience for different application combinations and stores this information in a database before memory issues occur. When an application is launched, the system checks the database to predict potential memory problems and prevents them by controlling application launches beforehand, rather than reacting after memory becomes insufficient.
Data Source
AI summary
Technologies for managing memory on a compute device are disclosed. The compute device is configured to determine the quality of a user experience of the compute device when a certain combination of applications are running on the compute device and stores an indication of the quality of the user experience that corresponds to that combination of applications. At a later time, such as when a user selects an application to be launched, the compute device may check if the current combination of applications is expected to have an acceptable quality of a user experience. If not, the compute device may kill one or more of the current combination of applications to improve the expected quality of the user experience.


