Graphical Memory Layout Editor for Software Object Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers of software programs often create objects and data structures without considering memory alignment, leading to sub-optimal execution and increased memory consumption due to unnecessary padding, which reduces cache utilization.

Innovation Solution

A system that visualizes memory layouts of software objects, allowing users to customize and configure memory layouts through graphical editing tools, applying user-defined rules to optimize field ordering and grouping, and storing these rules for subsequent use during object instantiation and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If developers declare fields without considering alignment requirements, then the software program is easier to write and maintain, but memory consumption increases due to unnecessary padding

Engineering Contradiction:
Improveease of writing softwareVSAvoidmemory consumption
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The system performs preliminary analysis of field alignment requirements during the development phase, automatically determining optimal field ordering and padding placement before the software is executed, thereby preventing memory waste without requiring developers to manually optimize alignment

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The software development system incorporates automatic memory layout optimization that analyzes and adjusts field alignment independently, allowing the system to self-optimize memory consumption without requiring developer intervention or specialized knowledge of alignment requirements

Inventive Principle:
Principle #25Self-service

2Speed

If padding is added to satisfy alignment requirements, then memory access efficiency improves, but memory consumption increases due to unused padding space

Engineering Contradiction:
Improvememory access efficiencyVSAvoidmemory consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts memory layout parameters such as field ordering, grouping, and padding placement based on alignment requirements and access patterns, optimizing the balance between memory access efficiency and memory consumption by changing these parameters during development

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If fields are reordered to optimize memory layout, then memory consumption decreases, but the complexity of memory management increases

Engineering Contradiction:
Improvememory consumptionVSAvoidmemory management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system performs preliminary optimization of memory layout during the development phase by automatically analyzing alignment requirements and determining optimal field ordering, thereby reducing memory consumption while preventing the increase of memory management complexity during execution

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10217254B2Graphical editing of memory layout rules for software programs
Publication Date: 2019.02.26 ORACLE INT CORP
  • US10217254B2 patent drawing
  • US10217254B2 patent drawing
  • US10217254B2 patent drawing

AI summary

The disclosed embodiments provide a system that facilitates execution of a software program. During operation, the system displays a visualization of a memory layout of an object instance in a software program, wherein the visualization includes one or more fields in the object instance. Next, the system receives user input that customizes the memory layout. The system then processes the user input by updating the displayed visualization to reflect customization of the memory layout by the user input and storing, in association with the software program, one or more rules that, when processed during instantiation of the object instance, configure the memory layout of the object instance based on the user input.