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
Inventors:Lenin Ravindranath SivalingamJitendra D. PadhyeSharad AgarwalRatul MahajanIan ObermillerShahin Shayandeh
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-modifiedWhat 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.