Remote Desktop Responsiveness Measurement via Emulated Keystroke

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for measuring the responsiveness of remote desktop sessions, such as ping time, do not accurately account for processing operations on the remote server, making it difficult to quantify the performance gains from graphics processing acceleration.

Innovation Solution

A client agent is used to determine the total round-trip time between user input and the display of updated graphics data by transmitting an emulated keystroke and detecting the permuted graphics object, which reflects the responsiveness of the remote desktop implementation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If ping time is used to measure responsiveness, then network connection speed is measured, but processing operation time on the remote server is not accounted for

Engineering Contradiction:
Improveresponsiveness measurement accuracyVSAvoidprocessing operation time information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

A graphics object permutation mechanism is introduced as an intermediary to measure server processing time. The server permutes a graphics object in response to client requests, and the client detects the permutation to calculate the time elapsed for server-side processing operations, thereby capturing the processing time that ping time misses.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If conventional ping time measurement is used, then network latency is obtained, but total round-trip time including processing is not captured

Engineering Contradiction:
Improveprocessing time measurementVSAvoidmeasurement mechanism complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The remote server performs self-measurement of its processing time by automatically permuting the graphics object in response to client requests. The server's own processing actions generate the measurement data, eliminating the need for external timing instruments and reducing overall system complexity while capturing the previously missed processing time component.

Inventive Principle:
Principle #25Self-service

3Productivity

If graphics processing acceleration is implemented, then rendering performance improves, but measuring the performance gain becomes difficult

Engineering Contradiction:
Improvegraphics processing speedVSAvoidperformance gain quantification
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

A feedback mechanism is established where the client measures the time for the server to permute the graphics object and uses this information to quantify processing performance. By continuously monitoring the permutation time, the system provides feedback on graphics processing acceleration effectiveness, enabling precise measurement of performance gains from vGPU implementation.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11683243B1Techniques for quantifying the responsiveness of a remote desktop session
Publication Date: 2023.06.20 NVIDIA CORP
  • US11683243B1 patent drawing
  • US11683243B1 patent drawing
  • US11683243B1 patent drawing

AI summary

A client computer executes a client agent that determines the time between when an input is transmitted from a client computer to a remote server and when updated graphics are received from the remote server in response. The client agent interacts with a server agent that executes on the remote server. The client agent transmits an emulated keystroke to the server agent. In response, the server agent modifies a graphics object and composites the modified graphics object with a currently rendered frame. The client computer receives the frame and identifies the modified graphics object, indicating that the emulated keystroke was received by the remote server. The client agent then computes the time difference between when the emulated keystroke was transmitted to the remote server and when the modified graphics object was detected and/or displayed at the client computer. This time difference indicates the responsiveness of the remote desktop implementation.