Working Set Profiler for Memory Access Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In modern software environments, memory usage and disk access contribute significantly to application startup time and responsiveness, with existing tools unable to effectively defer or avoid memory accesses without causing subsequent accesses from other parts of the program, leading to latency issues.

Innovation Solution

A system that monitors and profiles memory accesses by creating a call tree to identify shared and exclusive memory accesses, allowing for the prioritization and postponing of memory accesses outside critical paths, thereby reducing memory consumption and improving responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If memory accesses are monitored and profiled to identify shared and exclusive accesses, then memory consumption and latency can be reduced by eliminating or postponing non-critical path accesses, but the system complexity increases due to monitoring infrastructure and call tree analysis requirements

Engineering Contradiction:
Improveapplication startup timeVSAvoidmonitoring system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary monitoring and profiling of memory accesses during application execution to build call trees and identify shared/exclusive accesses before optimization can be applied. This allows the system to analyze access patterns and determine which memory accesses can be safely eliminated or postponed without affecting critical functionality, thereby reducing startup time while managing complexity through structured analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The monitoring system segments memory accesses into shared and exclusive categories, and further segments the execution path into critical and non-critical paths. This segmentation enables selective optimization where only non-critical path accesses with shared memory can be safely eliminated, reducing the impact of complexity on overall system performance.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If all memory accesses are eliminated to reduce memory consumption, then responsiveness improves, but subsequent memory accesses from other program parts cause latency issues

Engineering Contradiction:
Improvememory consumptionVSAvoidprogram responsiveness
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system applies different quality treatment to different memory accesses: shared memory accesses in non-critical paths are eliminated to reduce memory consumption, while exclusive accesses and critical path accesses are preserved to maintain program responsiveness. This localized optimization ensures that memory reduction does not compromise reliability.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically determines which memory accesses can be eliminated based on real-time analysis of call trees and access patterns. By continuously monitoring execution and updating the call tree structure, the system adapts its memory access elimination strategy to maintain responsiveness while reducing memory consumption.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8671398B2Working set profiler
Publication Date: 2014.03.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8671398B2 patent drawing
  • US8671398B2 patent drawing
  • US8671398B2 patent drawing

AI summary

A working set profiler can monitor an execution of a program or can monitor a user-specified portion of a program to identify methods executed within the monitored execution and associate memory page accesses with each of the identified methods. Memory page accesses are categorized as shared or exclusive, where a shared page is a page that is accessed by more than one method and where an exclusive page is a page that is accessed by only one method in the monitored portion of the program. A call tree can be constructed and augmented with the collected information regarding memory page accesses. Further, for shared pages, the name of the method with which a particular method shares the page access can be collected. The augmented call tree information can be analyzed and prioritized to identify methods whose elimination would reduce program latency.