Runtime Memoization Configuration File for Function Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memoization techniques face overhead challenges due to cache testing and result storage, which can impact performance in computationally expensive function calls, and existing methods lack efficient mechanisms for identifying and optimizing memoizable functions without modifying application code or user knowledge.

Innovation Solution

An offline memoization optimization mechanism uses a configuration file or database to identify and memoize functions based on runtime monitoring and analysis, applying memoization without modifying the code and determining an optimized set of functions to memoize based on frequency of use and cache space constraints, with data collected from multiple instances and devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If memoization is applied to computationally expensive functions, then computation time is reduced, but overhead from cache testing and result storage increases

Engineering Contradiction:
Improvecomputation timeVSAvoidoverhead from cache testing and result storage
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent performs preliminary monitoring and analysis of function execution patterns before deploying memoization. The system collects data on function call frequency, execution time, and input parameters during a monitoring phase, then uses this information to pre-determine which functions are suitable for memoization. This preliminary action allows the system to avoid overhead for functions that wouldn't benefit from memoization, while still capturing significant computation time savings for appropriate functions.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If all functions are memoized, then more computation time is saved, but cache space requirements and overhead increase

Engineering Contradiction:
Improvecomputation timeVSAvoidcache space
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent applies memoization selectively to specific functions based on their individual characteristics rather than uniformly to all functions. The system analyzes each function's execution pattern, computational cost, and input parameter variability to determine local suitability for memoization. This localized approach ensures that cache space is allocated to functions that provide the greatest computation time savings, rather than wasting space on functions that wouldn't benefit from caching.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent dynamically adjusts memoization parameters such as cache size allocation, caching duration, and input parameter matching strictness based on observed function behavior. The system monitors function execution patterns and modifies memoization strategies in response to changing workloads, ensuring optimal use of cache space under different operating conditions.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If memoization is implemented without modifying application code, then ease of deployment is improved, but ability to identify optimal functions for memoization decreases

Engineering Contradiction:
Improveease of deploymentVSAvoididentifying optimal functions for memoization
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements a feedback mechanism that monitors function execution patterns and uses this information to automatically identify suitable candidates for memoization. The system collects data on function call frequency, execution time, and input parameters, then uses this feedback to determine which functions would benefit most from memoization. This feedback-driven approach eliminates the need for manual code modification while still enabling intelligent selection of memoization candidates.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent enables the system to automatically identify and configure memoization for appropriate functions without requiring external intervention or code modification. The monitoring and analysis components self-service the task of identifying optimal memoization candidates by observing execution patterns and autonomously determining which functions should be cached, making the system both easy to deploy and intelligent in its selections.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8752034B2Memoization configuration file consumed at runtime
Publication Date: 2014.06.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8752034B2 patent drawing
  • US8752034B2 patent drawing
  • US8752034B2 patent drawing

AI summary

Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. As an application is executed, functions defined in the configuration file may be captured and memoized. During the first execution of the function, the return value may be captured and stored in the configuration file. For subsequent executions of the function, the return value may be stored in the configuration file. In some cases, the configuration file may be distributed with the return values to client computers. The configuration file may be created by one device and deployed to other devices in some deployments.