US2019370147A1PendingUtilityA1

Monitoring mobile application performance

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Jun 20, 2013Filed: Jun 12, 2018Published: Dec 5, 2019
Est. expiryJun 20, 2033(~6.9 yrs left)· nominal 20-yr term from priority
G06F 11/3476G06F 11/3644G06F 2201/87G06F 11/302G06F 11/3466G06F 11/3419G06F 2201/865G06F 11/3624
55
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Aspects of the subject disclosure are directed towards monitoring application performance during actual use, particularly mobile application performance. Described is instrumenting mobile application binaries to automatically identify a critical path in user transactions, including across asynchronous-call boundaries. Trace data is logged by the instrumented application to capture UI manipulations, thread execution, asynchronous calls and callbacks, UI updates and/or thread synchronization. The trace data is analyzed to assist developers in improving application performance.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method, comprising, automatically instrumenting application code, including inserting one or more logging functions and one or more event handlers into the application code to log events, and inserting code into the application code to assign an identifier for an invocation of an asynchronous call and detour the callback provided to the asynchronous call to detour code to associate the callback with the asynchronous call based upon the identifier. 
     
     
         2 . The method of  claim 1  wherein inserting the one or more logging functions and the one or more event handlers into the application code comprises adding a logger library to the application code that exports one or more logging functions and one or more event handlers. 
     
     
         3 . The method of  claim 1  further comprising adding a detour library to provide the detour code. 
     
     
         4 . The method of  claim 1  further comprising, logging events for a user transaction. 
     
     
         5 . The method of  claim 4  further comprising, analyzing the user transaction, including identifying a critical path therein. 
     
     
         6 . The method of  claim 5  further comprising, representing the user transaction as a directed acyclic graph, and wherein identifying the critical path comprises processing the directed acyclic graph. 
     
     
         7 . The method of  claim 1  further comprising, logging events including timing information related to at least one of the events. 
     
     
         8 . The method of  claim 1  further comprising, tracking an exception path. 
     
     
         9 . The method of  claim 1  further comprising, logging events during application execution, including logging at least one of: user interface (UI) manipulations, thread execution, asynchronous calls and callbacks, UI updates or thread synchronization. 
     
     
         10 . The method of  claim 9  wherein logging thread execution comprises identifying upcalls. 
     
     
         11 . A system comprising, an instrumenter, the instrumenter configured to instrument application code with logging functionality and with code that associates asynchronous calls with callbacks, and analysis component, the analysis component configured to process data logged during execution of the application code via the logging functionality into directed acyclic graphs representing one or more transactions that occurred during execution. 
     
     
         12 . The system of  claim 11  wherein the analysis component is configured to process at least one of the directed acyclic graphs to determine a critical path. 
     
     
         13 . The system of  claim 11  wherein the analysis component is configured to process logged data into an exception path. 
     
     
         14 . The system of  claim 11  wherein the logging functionality is configured to log data related to at least one of: a user transaction, a timer transaction or a sensor-driven transaction. 
     
     
         15 . The system of  claim 11  wherein the logging functionality is configured to log data related to at least one of: user interface (UI) manipulation, thread execution, asynchronous calls and callbacks, UI updates or thread synchronization. 
     
     
         16 . The system of  claim 11  wherein the application code is executable on a smartphone or a tablet computer, or both. 
     
     
         17 . One or more machine-readable storage media having executable instructions, which when executed perform steps, comprising:
 (a) executing instrumented application code;   (b) logging data during execution via the instrumented application code, the data corresponding to at least one of: user interface (UI) manipulations, thread execution, asynchronous calls and callbacks, UI updates or thread synchronization; and   (c) uploading the data for analysis processing.   
     
     
         18 . The one or more machine-readable storage media of  claim 17  wherein logging the data during execution comprises matching an asynchronous call to a corresponding callback. 
     
     
         19 . The one or more machine-readable storage media of  claim 17  wherein matching the asynchronous call to a corresponding callback comprises Instrumenting the asynchronous call to assign an unique identifier and detour the callback provided to the asynchronous call to call back to detour code, and associating the callback with the asynchronous call via the identifier. 
     
     
         20 . The one or more machine-readable storage media of  claim 17  having further executable instructions comprising, analyzing the data, including processing transactions logged within the data into directed acyclic graphs, and determining a critical path for a transaction by processing the directed acyclic graphs.

Join the waitlist — get patent alerts

Track US2019370147A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.