System for optimizing application start-up
AssigneeLaszlo Systems, Inc.
InventorsAdam G. Wolff, Oliver W. Steele, David T. Temkin, P. Tucker Withington
Life of this patent
Estimating the term…
Abstract
A method for decreasing a computer application's start-up time. In one aspect, the method comprises: creating a serialized representation of application objects in a runtime environment; building an object code file using the serialized representation; and providing the application to a new runtime environment. In another embodiment the method may include the steps of: compiling an application provided in a source language; initializing the application in a runtime environment; and creating a serialized representation of the application.
Claims55
A method for decreasing a computer application start-up time, comprising:
- compiling application source code into a first object code file for a runtime environment, the first object code file including application objects, each marked with a unique identifier, and instructions defining relations between the application objects and built-in objects in the runtime environment;
- processing the instructions to create relations between the application objects and built-in objects;
- generating initialization code representing a first application state;
- creating a serialized representation of the initialization code;
- building an optimized object code file using the serialized representation and the first object code file, wherein the step of building includes:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object in the initialization code with the same unique identifier to the optimized object code file;
- loading the optimized object code file into a new runtime environment to create a second application state isomorphic to the first application state;
- and
- executing the optimized object code file in the new runtime environment.
A method for providing an optimized application, comprising:
- compiling an application provided in a source language to create a first object code file containing application objects for a runtime environment, each application object being marked with a unique identifier, and instructions defining relations between the application objects and built-in objects in the runtime environment;
- initializing a first memory space that represents a first application state that contains built-in objects of the runtime environment;
- processing instructions in the application objects in the first object code file in order to add application objects and create relations within the first memory space to create a second memory space that represents a second application state;
- executing portions of the application marked for execution to create a third memory space that represents a third application state;
- creating a serialized representation of the third application state;
- building an optimized object code file using the serialized representation and the first object code file, wherein the step of building includes:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object in the third application state with the same unique identifier to the optimized object code file;
- loading the optimized object code file into a new runtime environment to create a fourth application state isomorphic to the third application state;
- and
- executing the optimized object code file in the new runtime environment.
A method of operating an application, comprising:
- requesting an application from an application source server;
- compiling the application provided in a source language to create a first object code file containing application objects for a runtime environment, each application object being marked with a unique identifier, and instructions defining relations between the application objects and built-in objects in the runtime environment;
- receiving the first object code file loaded into the runtime environment and creating a first application state;
- executing portions of the application marked for execution and creating a second application state;
- receiving an optimized object code file using a serialized description of the second application state and the first object code file, wherein the optimized object code file is built by:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object in the second application state with the same unique identifier to the optimized object code file;
- loading the optimized object code file into a new runtime environment to create a third application state isomorphic to the second application state;
- and
- executing the optimized object code file in the new runtime environment.
One or more processor readable storage devices having processor readable code embodied on said one or more processor readable storage devices, said processor readable code for programming one or more processors to perform a method for decreasing a computer application start-up time, comprising the steps of:
- compiling the computer application provided in a source language to create a first object code file containing application objects for a runtime environment, each application object being marked with a unique identifier, and instructions defining relations between the application objects and built-in objects in the runtime environment;
- receiving the first object code file loaded into the runtime environment and creating a first application state;
- executing portions of the computer application marked for execution to create a second application state;
- creating a serialized representation of the second application state;
- building an optimized object code file using the serialized representation of the application objects and the first object code file, wherein the step of building includes:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object in the second application state with the same unique identifier to the optimized object code file;
- loading the optimized object code file into a new runtime environment to create a third application state isomorphic to the second application state;
- and
- executing the optimized object code file in the new runtime environment.
A method for reducing the start-up time of an application, comprising:
- compiling the application provided in a source language into a first object code file for a first runtime environment, the first object code file including application objects, each marked with a unique identifier, and instructions defining relations between the application objects and built-in objects in the first runtime environment;
- loading the first object code file into the first runtime environment to create a first application state;
- executing portions of the application marked for execution to create a second application state;
- creating a serialized representation of the second application state;
- building a second object code file using the serialized representation and the first object code file, wherein the step of building includes:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object from the second application state with the same unique identifier to the second object code file;
- loading the second object code file into a second runtime environment to create a third application state isomorphic to the first second application state;
- and
- executing the second object code file in the second runtime environment.
A method for delivering an application via a network, the method comprising:
- compiling the application provided in a source language to create a first object code file containing application objects for a runtime environment, each application object being marked with a unique identifier;
- receiving the first object code file loaded into the runtime environment and creating a first application state;
- creating relations between application objects in the first object code file and built-in objects in the runtime environment to create a second application state;
- executing portions of the application marked for execution to create a third application state;
- creating a serialized representation of the third application state;
- building an optimized object code file using the serialized representation and the first object code file, wherein the step of building includes:
- identifying each application object in the serialized representation that has a unique identifier referring to an application object in the first object code file;
- and
- for each identified application object in the serialized representation, copying the application object from the third application state with the same unique identifier to the optimized object code file;
- loading the optimized object code file into a new runtime environment via the network to create a fourth application state isomorphic to the third application state;
- and
- executing the optimized object code file in the new runtime environment.
Dependencies are inferred from the claim text.