Method and system for profiling virtual application resource utilization patterns by executing virtualized application
First Claim
1. A computer-implemented method performed by a runtime engine executing on at least one computing device, the method comprising:
- in response to an execute command from a management process configured to direct at least a portion of the operations of the runtime engine, executing an application implemented by an application file comprising a plurality of data blocks, the management process operating independently of the runtime engine, a thread being initiated by the execution of the application, the thread having been created by a module associated with a module identifier and execution of the thread having been initiated at an offset location within the module, the module being a Dynamic Link Library file or an executable file;
monitoring read operations performed by the application on the application file as the application is executing, the monitoring comprising receiving a thread discriminate value and a pseudo thread identifier from the thread when the thread performs a read operation on the application file, the thread discriminate value identifying the module identifier and on offset value identifying the offset location in the module; and
sending a read message comprising the thread discriminate value and the pseudo thread identifier to the management process each time the application reads one or more of the plurality of data blocks of the application file.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for profiling execution of an application implemented by an application file comprising a plurality of data blocks. The application is executed in response to an execute command from a management process. Read messages are sent to the management process each time the application reads one or more of the plurality of data blocks of the application file. The management process records information about the read operations in one or more transcripts which may be used to create a streaming model for the application allowing the application to be downloaded using a conventional download protocol without using a specialized streaming protocol.
-
Citations
28 Claims
-
1. A computer-implemented method performed by a runtime engine executing on at least one computing device, the method comprising:
-
in response to an execute command from a management process configured to direct at least a portion of the operations of the runtime engine, executing an application implemented by an application file comprising a plurality of data blocks, the management process operating independently of the runtime engine, a thread being initiated by the execution of the application, the thread having been created by a module associated with a module identifier and execution of the thread having been initiated at an offset location within the module, the module being a Dynamic Link Library file or an executable file; monitoring read operations performed by the application on the application file as the application is executing, the monitoring comprising receiving a thread discriminate value and a pseudo thread identifier from the thread when the thread performs a read operation on the application file, the thread discriminate value identifying the module identifier and on offset value identifying the offset location in the module; and sending a read message comprising the thread discriminate value and the pseudo thread identifier to the management process each time the application reads one or more of the plurality of data blocks of the application file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer-implemented method performed by a management process executing on at least one computing device, the method comprising:
-
sending an execute command to a runtime engine to execute an application implemented by an application file comprising a plurality of data blocks; after the runtime engine begins executing the application, receiving a process start message from the runtime engine, the process start message comprising a pseudo process identifier that uniquely identifies the application, and a time value indicating when the application began executing, wherein the application is executing on an operating system configured to generate a process identifier for each process executing on the operating system, and the pseudo process identifier is determined by performing a hash function on the time value and a process identifier generated by the operating system for the application when the application began executing; recording the pseudo process identifier in a transcript; each time the executing application requests access to one of the plurality of data blocks, receiving an access request message from the runtime engine indicating the application has requested access to the one of the plurality of data blocks; and recording, in the transcript, the application access request to the one of the plurality of data blocks. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
Specification