IP Library Granted Patent US 10,650,079
Granted Patent B2
US 10,650,079 · App. 15/800,202 · Granted May 12, 2020

Resource cache classification using machine learning

Inventors: Shubham Jindal (Bangalore, IN); Nandakumar Devi (Bangalore, IN); Kunal Minda (Bangalore, IN); Vaibhav Tripathi (Bengaluru, IN)
Assignee: Cisco Technology, Inc.
G06F16/972G06F15/17331G06N20/00
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 10,650,079
App. No.
15/800,202
Granted
May 12, 2020
Kind
B2
Abstract

In one embodiment, techniques herein determine a plurality of resources loaded during rendering of a web page on a client device, and determine a duration of time taken for each of the plurality of resources to fully load. Accordingly, the techniques herein may then cluster the plurality of resources into clusters, comprising a first cluster consisting of resources having the shortest durations of the plurality of resources and a second cluster consisting of resources having the longest durations of the plurality of resources. Those resources of the first cluster may then be classified as cached resources, while those resources of the second cluster may be classified as non-cached resources.

Claims (64)

1. A method, comprising:

determining, by a processor, a plurality of resources loaded during rendering of a web page on a client device;

determining, by the processor, a duration of time taken for each of the plurality of resources to fully load;

clustering, by the processor, the plurality of resources into clusters, comprising:

a first cluster consisting of resources having the shortest durations of the plurality of resources; and

a second cluster consisting of resources having the longest durations of the plurality of resources;

classifying, by the processor, those resources of the first cluster as cached resources; and

classifying, by the processor, those resources of the second cluster as non-cached resources.

2. The method as in claim 1 , wherein clustering the plurality of resources into clusters further comprises a third cluster consisting of resources of the plurality of resources having durations between the shortest durations and the longest durations, the method further comprising:

classifying those resources of the third cluster as unclassified resources.

3. The method as in claim 1 , further comprising:

determining that the rendering of the web page is the first time the web page is rendered on the client device; and

classifying all of the plurality of resources as non-cached resources in response to the rendering of the web page being the first time the web page is rendered on the client device.

4. The method as in claim 3 , wherein determining that the rendering of the web page is the first time the web page is rendered on the client device is in response to:

determining that a given percentage of the plurality of resources have a duration beyond a given threshold.

5. The method as in claim 4 , wherein the given threshold is based on which web browser performs the rendering of the web page.

6. The method as in claim 1 , further comprising:

determining a proportion of cached resources and non-cached resources; and

displaying the proportion within a web page performance dashboard.

7. The method as in claim 1 , further comprising:

correlating a plurality of snapshots of renderings of the web page from a plurality of client devices; and

generating a report on cached and non-cached resources across the plurality of snapshots of renderings of the web page.

8. The method as in claim 1 , wherein the plurality of resources comprise both same-origin and cross-origin resources.

9. The method as in claim 1 , wherein clustering the plurality of resources into clusters is based on a machine learning algorithm.

10. A tangible, non-transitory, computer-readable medium storing program instructions that cause a computer to execute a process comprising:

determining a plurality of resources loaded during rendering of a web page on a client device;

determining a duration of time taken for each of the plurality of resources to fully load;

clustering the plurality of resources into clusters, comprising:

a first cluster consisting of resources having the shortest durations of the plurality of resources; and

a second cluster consisting of resources having the longest durations of the plurality of resources;

classifying those resources of the first cluster as cached resources; and

classifying those resources of the second cluster as non-cached resources.

11. The computer-readable medium as in claim 10 , wherein clustering the plurality of resources into clusters further comprises a third cluster consisting of resources of the plurality of resources having durations between the shortest durations and the longest durations, the process further comprising:

classifying those resources of the third cluster as unclassified resources.

12. The computer-readable medium as in claim 10 , the process further comprising:

determining that the rendering of the web page is the first time the web page is rendered on the client device; and

classifying all of the plurality of resources as non-cached resources in response to the rendering of the web page being the first time the web page is rendered on the client device.

13. The computer-readable medium as in claim 12 , wherein determining that the rendering of the web page is the first time the web page is rendered on the client device is in response to:

determining that a given percentage of the plurality of resources have a duration beyond a given threshold.

14. The computer-readable medium as in claim 13 , wherein the given threshold is based on which web browser performs the rendering of the web page.

15. The computer-readable medium as in claim 10 , the process further comprising:

determining a proportion of cached resources and non-cached resources; and

displaying the proportion within a web page performance dashboard.

16. The computer-readable medium as in claim 10 , the process further comprising:

correlating a plurality of snapshots of renderings of the web page from a plurality of client devices; and

generating a report on cached and non-cached resources across the plurality of snapshots of renderings of the web page.

17. The computer-readable medium as in claim 10 , wherein the plurality of resources comprise both same-origin and cross-origin resources.

18. The computer-readable medium as in claim 10 , wherein clustering the plurality of resources into clusters is based on a machine learning algorithm.

19. An apparatus, comprising:

one or more network interfaces configured to communicate in a computer network;

a processor coupled to the network interfaces and adapted to execute one or more processes; and

a memory configured to store a process executable by the processor, the process when executed operable to:

determine a plurality of resources loaded during rendering of a web page on a client device;

determine a duration of time taken for each of the plurality of resources to fully load;

cluster the plurality of resources into clusters, comprising:

a first cluster consisting of resources having the shortest durations of the plurality of resources; and

a second cluster consisting of resources having the longest durations of the plurality of resources;

classify those resources of the first cluster as cached resources; and

classify those resources of the second cluster as non-cached resources.

20. The apparatus as in claim 19 , wherein clustering the plurality of resources into clusters further comprises a third cluster consisting of resources of the plurality of resources having durations between the shortest durations and the longest durations, wherein the process when executed is further operable to:

classify those resources of the third cluster as unclassified resources.

21. The apparatus as in claim 19 , wherein the process when executed is further operable to:

determine that the rendering of the web page is the first time the web page is rendered on the client device; and

classify all of the plurality of resources as non-cached resources in response to the rendering of the web page being the first time the web page is rendered on the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: JINDAL, SHUBHAM; DEVI, NANDAKUMAR; MINDA, KUNAL; TRIPATHI, VAIBHAV
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044002/0005 →
Continuity (1)
Related Publication 20190130045A1 · May 2, 2019
Cited By (2)
US 12,399,994 US 12,725,074