Tracking timing aspects of your application in field is invaluable in order to understand how your software is behavior for end users. Gaining insights into how the users are experiencing your software will help you address critical issues and determine the need for performance tuning in your application.
Your software may not run as smoothly on the machines and devices of your end users as they did when you tested them. Tracking timing aspects in your software as it it used by your end users will help you understand if certain parts of your software are not performing as expected or perhaps seeing some unexpected timing issues.
The example screenshot below shows data on the startup time for a desktop application. The data is recorded by an application that was instrumented with feature timing tracking to measure the time from the user starting the application until the UI was fully rendered.
From this data you can see (the rather surprising) result that more than 10% of the time, users are experiencing more than 10 seconds of startup time. This is valuable information and allows the business to evaluate whether this is acceptable or not.
You can easily add feature timing tracking of into your application by using the track feature timing API that allows you to track the start and end of a named feature within your application. When you have tracked timing and first access it in the Feature Timing report, you'll be met with the following screen:
This happens because data is collected you have yet to configure intervals that will group the collected timing data into appropriate time intervals that make sense to you. This can be done by clicking the Configure Intervals button or selecting the Configure Intervals menu item. This will lead you to a dialog where you can setup appropriate intervals of your timing data.
Once you've configured intervals, you'll start seeing a distribution of your timing data and you can interact with the data using the options in the standard menu.
Similarly to grouping the collected data into intervals, you are able to assign a scaling factor to the timing values you have collected as well as assign a custom unit name to the data. Note that the default unit for timing data is milliseconds. Configuring this is convenient if you, for instance, are collecting timing data that typically range in seconds and not milliseconds. You can configure this by opening the Settings menu item and entering the appropriate unit name and scale to alter this. See the example screenshot below for scaling from milliseconds to seconds:
Notice the small hint at the bottom that shows how an originally recorded milliseconds (754) will be displayed with the active scale and unit (7.362kB). This should help you create accurate scales for your timing data.