System and method for reducing startup cost of a software application
First Claim
1. A method comprising:
- initializing, by a computing device, a main application on a first thread, wherein the main application has a first synchronous connection with a target application and initialization of the main application includes displaying a user interface;
initializing, by the computing device, an assistant process on a second thread, wherein a start of the second thread is deferred until after the first thread has performed one or more synchronous operations at the target application through the first synchronous connection, the assistant process having an asynchronous connection to the main application and the assistant process having a second synchronous connection to the target application;
performing, by the assistant process in response to the assistant process receiving a request from the main application via the asynchronous connection, the one or more synchronous operations at the target application through the second synchronous connection, wherein performance of the one or more synchronous operations by the first thread blocks progress of the main application and performance of the one or more synchronous operations by the second thread does not block progress of the main application; and
terminating the first synchronous connection after the assistant process is initialized and a unit of communication between the main application and the target application is completed.
2 Assignments
0 Petitions
Accused Products
Abstract
A computing device has one or more processors and memory storing programs executed by the one or more processors. The computing device initializes a main application on a first thread. The main application has a first synchronous connection with a target application. After the main application performs one or more operations at the target application through the first synchronous connection, the computing device initializes an assistant process on a second thread. The assistant process has a second synchronous connection with the target application and an asynchronous connection with the main application. After receiving a request from the main application through the asynchronous connection, the assistant process performs one or more operations at the target application through the second synchronous connection.
-
Citations
17 Claims
-
1. A method comprising:
-
initializing, by a computing device, a main application on a first thread, wherein the main application has a first synchronous connection with a target application and initialization of the main application includes displaying a user interface; initializing, by the computing device, an assistant process on a second thread, wherein a start of the second thread is deferred until after the first thread has performed one or more synchronous operations at the target application through the first synchronous connection, the assistant process having an asynchronous connection to the main application and the assistant process having a second synchronous connection to the target application; performing, by the assistant process in response to the assistant process receiving a request from the main application via the asynchronous connection, the one or more synchronous operations at the target application through the second synchronous connection, wherein performance of the one or more synchronous operations by the first thread blocks progress of the main application and performance of the one or more synchronous operations by the second thread does not block progress of the main application; and terminating the first synchronous connection after the assistant process is initialized and a unit of communication between the main application and the target application is completed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer system comprising:
-
one or more processors; memory; and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for; initializing a main application on a first thread, wherein the main application has a first synchronous connection with a target application, wherein initialization of the main application includes displaying a user interface; initializing an assistant process on a second thread, wherein a start of the second thread is deferred until after the first thread has performed one or more synchronous operations at the target application through the first synchronous connection, the assistant process having an asynchronous connection to the main application and the assistant process having a second synchronous connection to the target application; and performing, by the assistant process in response to the assistant process receiving a request from the main application, via the asynchronous connection, the one or more synchronous operations at the target application through the second synchronous connection, wherein performance of the one or more synchronous operations by the first thread blocks progress of the main application and performance of the one or more synchronous operations by the second thread does not block progress of the main application; and terminating the first synchronous connection after the assistant process is initialized and a unit of communication between the main application and the target application is completed. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium that stores computer-executable instructions that, when executed configure a computing device to:
-
initialize a main application on a first thread, wherein the main application has a first synchronous connection with a target application, wherein initialization of the main application includes displaying a user interface; initialize an assistant process on a second thread, wherein a start of the second thread is deferred until after the first thread has performed one or more synchronous operations at the target application through the first synchronous connection, the assistant process having an asynchronous connection to the main application and the assistant process having a second synchronous connection to the target application; and perform, by the assistant process in response to the assistant process receiving a request from the main application via the asynchronous connection, the one or more synchronous operations at the target application through the second synchronous connection, wherein performance of the one or more synchronous operations by the first thread blocks progress of the main application and performance of the one or more synchronous operations by the second thread does not block progress of the main application; and terminate the first synchronous connection after the assistant process is initialized and a unit of communication between the main application and the target application is completed. - View Dependent Claims (16, 17)
-
Specification