Mobile App Memory Prediction to Prevent Low-Memory Termination
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing devices with limited memory face challenges in accurately predicting memory allocation without termination, as system-level metrics can behave incorrectly, take too long to access, or lag behind real-time usage, leading to unpredictable memory availability.
Innovation Solution
Applications utilize neural networks trained via machine learning to predict safe memory allocation based on system-level metrics, leveraging training data from stress tests across various devices to enhance accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If applications allocate memory dynamically based on needs, then application functionality and performance are improved, but the risk of memory exhaustion and application termination increases
Solution Approach 1:
The system performs preliminary actions by continuously monitoring memory metrics and training machine learning models to predict future memory availability before actual memory exhaustion occurs. This allows applications to proactively adjust their memory allocation strategies and free up memory in advance, preventing termination rather than reacting after the problem occurs.
Solution Approach 2:
The system implements feedback mechanisms by continuously collecting memory usage data from multiple sources (activity manager, process manager, memory manager), feeding this data into machine learning models, and using the predictions to guide application memory management decisions. This closed-loop feedback enables dynamic adaptation of memory allocation based on real-time system state.
2Ease of operation
If system-level memory metrics are used to determine available memory, then memory management decisions can be made, but the accuracy and real-time responsiveness of these metrics is insufficient
Solution Approach 1:
The system merges multiple memory metric sources including activity manager data, process manager information, and memory manager statistics into a unified memory state representation. This combination of multiple data sources provides a more comprehensive and accurate view of actual memory availability than any single source could provide alone.
Solution Approach 2:
The system replaces traditional mechanical/memory-based metric collection with machine learning-based prediction. Instead of relying solely on direct readings from system metrics that may be outdated or inaccurate, the patent uses trained ML models to predict future memory states based on historical patterns and current trends, substituting computational intelligence for direct measurement.
3Productivity
If multiple processes execute simultaneously allocating memory, then system productivity increases, but the likelihood of reaching low memory state and terminating processes increases
Solution Approach 1:
The system performs preliminary risk assessment by continuously predicting memory availability and identifying processes that may be at risk of termination. Before memory exhaustion occurs, the system can notify processes to proactively release non-critical memory or adjust their allocation strategies, allowing multiple processes to continue running safely without triggering termination cascades.
Data Source
AI summary
An application from a plurality of applications executing at one or more processors of a computing device may determine a plurality of memory metrics of the computing device. The application may determine information indicative of a predicted safe amount of memory available for allocation by an application from the plurality of applications based at least in part on the plurality of memory metrics. The application may adjust, based at least in part on the information indicative of the predicted safe amount of memory available for allocation by the application, one or more characteristics of the application executing at the one or more processors to adjust an amount of memory allocated by the application.


