Method and system for preloading resources
First Claim
1. A method for preloading resources for an application on a client device, comprising:
- determining a resource list to preload onto the client device, wherein determining the list of resources, further comprises;
determining a plurality of N-order Markov Chains based on a plurality of application hints associated with a previous execution of the application, wherein N is greater than 1;
combining the plurality of N-order Markov Chains into a prediction graph based on at least one of Bayes'"'"' Theorem or a subsequence matching algorithm; and
reducing the prediction graph to constrain a size of the prediction graph, the prediction graph being useable to generate the list of resources; and
employing the resource list to preload at least one resource onto the client device before the application needs the at least one resource;
receiving an application hint associated with the application;
in response to the application hint, dynamically changing, by the client device, the resource list by, wherein dynamically changing the resource list comprises;
adding within the list another resource to preload based on the application hint, the other resource to preload being added to the list at a location within the list based on a priority associated with the resource; and
identifying which resource on the list should be loaded next into a memory local to the client device; and
preloading the client device with the resources based on the changed resource list, wherein if the resources are located on a server device, then downloading the resources from the server device, and storing the downloaded resources locally on the client device, and obtaining the resources locally if the resources are stored on the client device, the application being configured to execute with a subset of the resources associated with the application.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for preloading data is provided. Resources are preloaded on a client before they are needed by an application. Application hints and static resources lists may be used to indicate resources are needed. The application may begin execution before receiving all of the resources associated with the application. Preloading may be done during execution of an application, or when the application is not executing. Preloading allows an application to run smoothly without consuming more resources than are needed by an application. A prediction graph may be generated that is used in predicting the resources that are likely to be needed by the application. An analyzer may also be used to simulate the system and adjust parameters used in creating the prediction graph.
226 Citations
27 Claims
-
1. A method for preloading resources for an application on a client device, comprising:
-
determining a resource list to preload onto the client device, wherein determining the list of resources, further comprises; determining a plurality of N-order Markov Chains based on a plurality of application hints associated with a previous execution of the application, wherein N is greater than 1; combining the plurality of N-order Markov Chains into a prediction graph based on at least one of Bayes'"'"' Theorem or a subsequence matching algorithm; and reducing the prediction graph to constrain a size of the prediction graph, the prediction graph being useable to generate the list of resources; and employing the resource list to preload at least one resource onto the client device before the application needs the at least one resource; receiving an application hint associated with the application; in response to the application hint, dynamically changing, by the client device, the resource list by, wherein dynamically changing the resource list comprises; adding within the list another resource to preload based on the application hint, the other resource to preload being added to the list at a location within the list based on a priority associated with the resource; and identifying which resource on the list should be loaded next into a memory local to the client device; and preloading the client device with the resources based on the changed resource list, wherein if the resources are located on a server device, then downloading the resources from the server device, and storing the downloaded resources locally on the client device, and obtaining the resources locally if the resources are stored on the client device, the application being configured to execute with a subset of the resources associated with the application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A client computer for preloading resources for an application, comprising:
-
a network interface component for receiving and sending information; a processor, in communication with the network interface component, that includes machine instructions that cause the processor to perform actions, including; determining a list of resources to preload onto the client computer, each preload resource having a priority for preloading, wherein determining the list of resources, further comprises; determining a plurality of N-order Markov Chains based on a plurality of application hints associated with a previous execution of the application, wherein N is greater than 1; combining the plurality of N-order Markov Chains into a prediction graph based on at least one of Bayes'"'"' Theorem or a subsequence matching algorithm; and reducing the prediction graph to constrain a size of the prediction graph, the prediction graph being useable to generate the list of resources; and preloading at least one resource in the list of resources based on the priority associated with the at least one resource; receiving an application hint associated with an execution of the application; in response to the application hint, revising, by the client computer, the list of resources by adding another preload resource associated with the application hint at a location within the list of prioritized resources identified by a priority of the other preload resource, wherein the other preload resource associated with the application hint is added to the list of resources before the application needs the other preload resource; and preloading the resources based on the revised list of resources. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A manufacture including a computer-readable non-volatile storage medium having computer-readable components therein useable in preloading resources for an application, comprising:
-
an application that is configured to provide an application hint during execution of the application, the application hint including a request for a preloading of a resource and a priority associated with the preload resource; a predictor that is operative to perform actions, including; determining a list of resources to preload onto the computer-readable non-volatile storage medium, each preload resource within the list having a priority for preloading, wherein determining the list of resources comprises eliminating resources from this list that are already present on the computer-readable non-volatile storage medium, and wherein determining the list of resources, further comprises; determining a plurality of N-order Markov Chains based on a plurality of application hints associated with a previous execution of the application, wherein N is greater than 1; combining the plurality of N-order Markov Chains into a prediction graph based on at least one of Bayes'"'"' Theorem or a subsequence matching algorithm; and reducing the prediction graph to constrain a size of the prediction graph, the prediction graph being useable to generate the list of resources; and a preloader that is operative to perform actions, including; pre-loading at least one resource in the list of resources based on the priority associated with the at least one resource; receiving the application hint from the application; revising, by the computer-readable non-volatile storage medium, the list of resources by adding the preload resource associated with the application hint at a location within the list of prioritized resources identified by the priority of the other preload resource; and employing the revised list of resources to preload at least one other resource such that the application is configured to be executed by at least one processor with a subset of the resources associated with the application. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A manufacture including a computer-readable non-volatile storage medium having computer-readable components therein useable in preloading resources for an application, comprising:
-
an application that is configured to provide an application hint during execution of the application, the application hint including a request for a preloading of a resource and a priority associated with the preload resource; a predictor that is operative to perform actions, including; determining a list of resources to preload onto the computer-readable non-volatile storage medium, each preload resource within the list having a priority for preloading, wherein determining the list of resources comprises eliminating resources from this list that are already present on the computer-readable non-volatile storage medium; and a preloader that is operative to perform actions, including; pre-loading at least one resource in the list of resources based on the priority associated with the at least one resource; receiving the application hint from the application; revising, by the computer-readable non-volatile storage medium, the list of resources by adding the preload resource associated with the application hint at a location within the list of prioritized resources identified by the priority of the other preload resource; and employing the revised list of resources to preload at least one other resource, wherein determining the list of resources, further comprises; determining a plurality of N-order Markov Chains based on a plurality of application hints associated with a previous execution of the application, wherein N is greater than 1; combining the plurality of N-order Markov Chains into a prediction graph based on at least one of Bayes'"'"' Theorem or a subsequence matching algorithm; and reducing the prediction graph to constrain a size of the prediction graph, the prediction graph being useable to generate the list of resources.
-
Specification