Hybrid Object Cloning for Scripting Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Scripting programs, due to their interpreted nature, experience latency issues during protracted operations like autosave, save, and data conversion, which can frustrate users and decrease productivity, especially when these operations are frequent.

Innovation Solution

Concurrent execution of foreground and background processes using hybrid objects, where native objects handle file access, user input, and rendering, while interpreted objects manage other processes, allowing for the creation of a distinct copy of the object hierarchy to execute protracted operations without affecting the original hierarchy, thus minimizing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If scripting programs are executed using an interpreter, then the programs can leverage underlying functionality of software components, but the execution speed is slower compared to natively executable programs

Engineering Contradiction:
Improveability to leverage software component functionalityVSAvoidexecution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent segments the execution environment into two distinct threads: a foreground thread that executes user-interactive scripting programs using an interpreter, and a background thread that executes protracted operations using a separate interpreter instance. This segmentation allows the main UI thread to remain responsive while background operations execute concurrently, resolving the contradiction between interpreted execution flexibility and execution speed.

Inventive Principle:
Principle #1Segmentation

2Use of energy by moving object

If interpreters execute instructions sequentially in a single-threaded environment, then resource consumption is reduced, but protracted operations cause latency that frustrates users

Engineering Contradiction:
Improvecomputing resource consumptionVSAvoiduser wait time during protracted operations
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent introduces a new dimension of execution by creating a separate background thread that runs independently from the foreground UI thread. This dimensional separation in the execution model allows protracted operations to proceed without blocking the user interface, transforming the single-threaded sequential execution into a multi-threaded concurrent execution model.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent creates a cloned copy of the object hierarchy in the background thread that mirrors the foreground hierarchy. This copying approach allows the background thread to execute operations on its own isolated copy without interfering with the foreground UI operations, enabling concurrent execution while maintaining data integrity through selective synchronization.

Inventive Principle:
Principle #26Copying

3Reliability

If protracted operations like autosave and data conversion are executed in the foreground thread, then operations complete successfully, but user experience deteriorates due to noticeable latency

Engineering Contradiction:
Improveoperation completionVSAvoiduser experience during operations
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent extracts protracted operations from the foreground thread and relocates them to the background thread. By taking out these latency-causing operations from the user-visible execution path, the system maintains reliable operation completion while eliminating the negative impact on user experience, as the background thread executes these operations without blocking the responsive foreground UI.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10671412B1Fast cloning for background processes in scripting environments
Publication Date: 2020.06.02 ADOBE INC
  • US10671412B1 patent drawing
  • US10671412B1 patent drawing
  • US10671412B1 patent drawing

AI summary

A programmable device including a memory and at least one processor coupled to the memory is provided. The memory stores a plurality hybrid objects. Each hybrid object of the plurality of hybrid objects includes a native object wrapped by an interpreted object. The at least one processor can be coupled to the memory. The at least one processor can be configured to identify a message to execute an operation on one or more hybrid objects of the plurality of hybrid objects; clone, in response to reception of the message, each native object within the one or more hybrid objects to create one or more cloned native objects; wrap each cloned native object of the one or more native objects with a new interpreted object to create one or more new hybrid objects; and execute the operation on the one or more new hybrid objects.