IP Library Granted Patent US 8,902,248
Granted Patent B1
US 8,902,248 · App. 13/432,331 · Granted Dec 2, 2014

Method and system for measuring display performance of a remote application

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,902,248
App. No.
13/432,331
Granted
Dec 2, 2014
Kind
B1
Abstract

This disclosure describes a performance-monitoring system that computes a display performance metric of a remote application. During operation, the system performs a sequence of input events, and receives information which updates a graphical user interface (GUI). The GUI displays a sequence of frames rendered by a remote application in response to the input events. The system then samples colors at a number of pivot points on the GUI, and matches the a respective frame to a previously performed input event based on the sampled colors. The system subsequently computes a display performance metric for the remote application based on the frames and the corresponding input events.

Claims (81)

1. A computer-implemented method, comprising:

performing a sequence of input events by a computer;

receiving information which updates a graphical user interface (GUI), wherein the GUI displays a sequence of frames rendered by a remote application, the GUI containing an object that is modified in response to the input events, wherein a color of the object is varied between successive frames in the sequence of frames;

sampling colors at a number of pivot points on the GUI;

determining a motion vector for the object on the GUI based on the color of the object between the successive frames obtained from the sampling; and

matching the motion vector to a previously performed input event; and

computing a display performance metric for the remote application based on the motion vector and the corresponding input events.

2. The method of claim 1 , wherein the GUI displays a window; and

wherein the window is filled with colors based on a predetermined gradient.

3. The method of claim 1 , wherein the frames contain different colors, respectively; and

wherein a respective color in a frame corresponds to an update to the GUI.

4. The method of claim 1 ,

wherein the GUI displays a window; and

wherein the sequence of input events include scrolling, dragging, or resizing the window.

5. The method of claim 4 , further comprising:

determining current coordinates for the window based on the sampled colors;

determining previous coordinates for the window in a previous frame;

computing the motion vector based on the current and previous window coordinates; and

matching the motion vector to the input event.

6. The method of claim 1 , wherein a respective input event transforms a three-dimensional object rendered in the GUI.

7. The method of claim 1 , further comprising:

determining a sequence number for the frames based on the sampled colors; and

matching the sequence number to the input event.

8. The method of claim 1 ,

wherein the GUI displays a virtual globe;

wherein the sequence of input events cause the GUI to zoom into or out of a visible object on the virtual globe; and

wherein the method further comprises measuring a dimension of the visible object, thereby facilitating determining a zoom level.

9. The method of claim 8 , further comprising:

determining the zoom level based on the measured dimension; and

matching the zoom level to the input event.

10. The method of claim 1 , wherein performing the sequence of input events comprises executing a script.

11. The method of claim 10 , wherein computing the display performance metric involves computing one or more of:

a total runtime;

a metric indicating an average delay between consecutive frames;

a metric indicating a time duration between when an input event is transmitted and when a corresponding frame is displayed; and

a metric indicating a number of displayed frames.

12. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

performing a sequence of input events;

receiving information which updates a graphical user interface (GUI), wherein the GUI displays a sequence of frames rendered by a remote application, the GUI containing an object that is modified in response to the input events, wherein a color of the object is varied between successive frames in the sequence of frames;

sampling colors at a number of pivot points on the GUI;

determining a motion vector for the object on the GUI based on the color of the object between the successive frames obtained from the sampling; and

matching the motion vector to a previously performed input event; and

computing a display performance metric for the remote application based on the motion vector and the corresponding input events.

13. The storage medium of claim 12 , wherein the GUI displays a window; and

wherein the window is filled with colors based on a predetermined gradient.

14. The storage medium of claim 12 , wherein the frames contain different colors, respectively; and

wherein a respective color in a frame corresponds to an update to the GUI.

15. The storage medium of claim 12 ,

wherein the GUI displays a window;

wherein the sequence of input events includes scrolling, dragging, or resizing the window.

16. The storage medium of claim 15 , further comprising instructions for:

determining current coordinates for the window based on the sampled colors;

determining previous coordinates for the window in a previous frame;

computing a motion vector based on the current and previous window coordinates; and

matching the motion vector to the input event.

17. The storage medium of claim 12 , wherein a respective input event transforms a three-dimensional object rendered in the GUI.

18. The storage medium of claim 17 , further comprising instructions for:

determining a sequence number for the frames based on the sampled colors; and

matching the sequence number to the input event.

19. The storage medium of claim 12 ,

wherein the GUI displays a virtual globe;

wherein the sequence of input events cause the GUI to zoom into or out of a visible object on the virtual globe; and

wherein the method further comprises measuring a dimension of the visible object, thereby facilitating determining a zoom level.

20. The storage medium of claim 19 , further comprising instructions for:

determining the zoom level based on the measured dimension; and

matching the zoom level to the input event.

21. The storage medium of claim 12 , wherein performing the sequence of input events comprises executing a script.

22. The storage medium of claim 21 , wherein computing the display performance metric involves computing one or more of:

a total runtime;

a metric indicating an average delay between consecutive frames;

a metric indicating a time duration between when an input event is transmitted and when a corresponding frame is displayed; and

a metric indicating a number of displayed frames.

23. A computing device, comprising:

a processor; and

a memory coupled to the processor, the memory storing instructions that when executed by the processor, cause the computing device to:

perform a sequence of input events;

receive information which updates a graphical user interface (GUI), wherein the GUI displays a sequence of frames rendered by a remote application, the GUI containing an object that is modified in response to the input events, wherein a color of the object is varied between successive frames in the sequence of frames;

sampling colors at a number of pivot points on the GUI;

determine a motion vector for the object on the GUI based on the color of the object between the successive frames obtained from the sampling; and

match the motion vector to a previously performed input event; and

computing a display performance metric for the remote application based on the motion vector and the corresponding input events.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2012
From: BIDARKAR, RISHI; AGRAWAL, BANIT; SPRACKLEN, LAWRENCE ANDREW; SIVARAMAN, HARI
To: VMWARE, INC.
Reel/Frame 027945/0434 →