IP Library Patent Application 19382805
Patent Application
App. No. 19/382,805

SYSTEMS, METHODS, AND APPARATUSES FOR IDENTIFYING SIGNIFICANT WEBPAGE EVENTS AND TUNING WEB BROWSER HINTS

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 None
App. No.
19/382,805
Abstract

Webpage performance is optimized with techniques that identify essential resources needed for rendering significant events and optimizing hints for the essential resources.

Claims (95)

1 . A method comprising:

interpreting a set of resources;

selecting a first subset of resources from the set of resources;

transmitting the set of resources to an application, wherein the first subset of resources is transmitted to the application after a first delay;

monitoring a first execution of the application that uses the set of resources;

determining a first timing of an event during the first execution;

determining, based at least in part on the first timing and the first delay, one or more blocking resources, in the set of resources, for the event; and

transmitting a message comprising an indicator that identifies the one or more blocking resources.

2 . The method of claim 1 , wherein the application is a webpage browser.

3 . The method of claim 2 , wherein:

the set of resources are for a webpage; and

the method further comprises:

collecting the set of resources for the webpage;

storing the set of resources and the webpage in a memory device; and

retrieving the set of resources from the memory device.

4 . The method of claim 1 , wherein the event is a snappi-event.

5 . The method of claim 4 further comprising:

identifying the snappi-event by analyzing a second execution of the application using the set of resources.

6 . The method of claim 1 , wherein the one or more blocking resources are required for the event to complete.

7 . The method of claim 1 further comprising:

interpreting a timing baseline for the event;

wherein, determining the one or more blocking resources is further based at least in part on the timing baseline.

8 . The method of claim 7 , wherein determining the one or more blocking resources is further based at least in part on the first timing being longer than an expected timing for the event defined by the timing baseline.

9 . The method of claim 1 further comprising:

monitoring a CPU on which at least part of the first execution of the application occurs; and

determining that at least one of the first subset of resources blocks the at least a part of the first execution on the CPU;

wherein determining the one or more blocking resources is based at least in part on the determination that the at least one of the first subset of resources blocks at least a part of the first execution on the CPU.

10 . The method of claim 1 further comprising:

selecting a second subset of resources from the set of resources;

re-transmitting the set of resources to the application, wherein the second subset of resources is re-transmitted to the application after a second delay;

monitoring a second execution of the application using the set of resources; and

determining a second timing of the event during the second execution;

wherein determining the one or more blocking resources is further based at least in part on the second timing and the second delay.

11 . The method of claim 10 , wherein the one or more blocking resources includes resources in the first subset of resources and the second subset of resources.

12 . The method of claim 10 further comprising:

comparing the first timing to the second timing, wherein:

the one or more blocking resources includes resources in the first subset of resources when the first timing is longer than the second timing; and

the one or more blocking resources includes resources in the second subset of resources when the second timing is longer than the first timing.

13 . The method of claim 1 , wherein the monitoring the first execution of the application comprises receiving information regarding the first execution from the application.

14 . The method of claim 1 further comprising generating a plurality of hints for the one or more blocking resources.

15 . The method of claim 14 , further comprising:

generating a plurality of hint combinations from the plurality of hints;

loading, for each of the plurality of hint combinations, the application using the hint combination;

determining, for each loading of the application, a third timing for the event;

generating, based at least in part on the third timings, performance data for the plurality of hint combinations; and

transmitting the performance data.

16 . The method of claim 15 , further comprising generating a second plurality of hints based on the performance data.

17 . An apparatus comprising:

at least one processor; and

at least one memory device storing an application that, when loaded into the at least one processor, causes the at least one processor to:

interpret a set of resources;

select a first subset of resources from the set of resources;

transmit the set of resources to the application, wherein the first subset of resources is transmitted to the application after a first delay;

monitor a first execution of the application that uses the set of resources;

determine a first timing of an event during the first execution;

determine, based at least in part on the first timing and the first delay, one or more blocking resources, in the set of resources, for the event; and

transmit a message comprising an indicator that identifies the one or more blocking resources.

18 . The apparatus of claim 17 , wherein the application is a webpage browser.

19 . The apparatus of claim 18 , wherein:

the set of resources are for a webpage; and

wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

collect the set of resources for the webpage;

store the set of resources and the webpage in a memory device; and

retrieve the set of resources from the memory device.

20 . The apparatus of claim 17 , wherein the event is a snappi-event.

21 . The apparatus of claim 20 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

identify the snappi-event by analyzing a second execution of the application using the set of resources.

22 . The apparatus of claim 17 , wherein the one or more blocking resources are required for the event to complete.

23 . The apparatus of claim 17 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

interpret a timing baseline for the event;

wherein, determining the one or more blocking resources is further based at least in part on the timing baseline.

24 . The apparatus of claim 23 , wherein determining the one or more blocking resources is further based at least in part on the first timing being longer than an expected timing for the event defined by the timing baseline.

25 . The apparatus of claim 17 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

monitor a CPU on which at least part of the first execution of the application occurs; and

determine that at least one of the first subset of resources blocks the at least a part of the first execution on the CPU;

wherein determining the one or more blocking resources is based at least in part on the determination that the at least one of the first subset of resources blocks at least a part of the first execution on the CPU.

26 . The apparatus of claim 17 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

select a second subset of resources from the set of resources;

re-transmit the set of resources to the application, wherein the second subset of resources is re-transmitted to the application after a second delay;

monitor a second execution of the application using the set of resources; and

determine a second timing of the event during the second execution;

wherein determining the one or more blocking resources is further based at least in part on the second timing and the second delay.

27 . The apparatus of claim 26 , wherein the one or more blocking resources includes resources in the first subset of resources and the second subset of resources.

28 . The apparatus of claim 26 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

compare the first timing to the second timing, wherein:

the one or more blocking resources includes resources in the first subset of resources when the first timing is longer than the second timing; and

the one or more blocking resources includes resources in the second subset of resources when the second timing is longer than the first timing.

29 . The apparatus of claim 17 , wherein the monitoring the first execution of the application comprises receiving information regarding the first execution from the application.

30 . The apparatus of claim 17 , wherein the application that, when loaded into the at least one processor, further causes the at least one processor to:

generate a plurality of hints for the one or more blocking resources;

generate a plurality of hint combinations from the plurality of hints;

load, for each of the plurality of hint combinations, the application using the hint combination;

determine, for each loading of the application, a third timing for the event;

generate, based at least in part on the third timings, performance data for the plurality of hint combinations; and

generate a second plurality of hints based on the performance data.