Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
Carbide.c++: Performance Investigator
This article introduces the Carbide.c++ performance Investigator: a Carbide.c++ development tool for analysing the behaviour of running C++ applications.
This feature is available from Carbide.c++ 2.0
In the context of software development, performance analysis is the investigation of a program’s behavior using information gathered as the program executes. This type of analysis can be contrasted with static-code analysis, which investigates code before execution. The usual goal of performance analysis is to determine which parts of an application should be optimized to improve performance by reducing CPU, memory, or battery usage.
The Carbide.c++ Performance Investigator consists of two components. The Performance Investigator Profiler runs on an S60 3rd Edition device and collects information on processes, memory, and battery usage. Then, within Carbide.c++, the Performance Investigator Analyzer allows the information collected to be analyzed.
Once the Performance Investigator Profiler has been installed on an S60 3rd Edition device, the next step is to collect data. Gathering this type of data is done by profiling — that is, by measuring the execution of a program as it runs. The Profiler is an application and a set of kernel drivers. The kernel drivers listen for function calls. And the application records the data. The result, a stream of recorded events, is called a trace. The type of data to be collected in a trace can be selected from a number of options, including the frequency and duration of function calls, memory usage, or events such as pressing buttons. The trace data come from the kernel — not from the application being investigated. This means that the trace will include data from all processes active during the profiling session, not just the application of interest. Because of this, the Profiler marks the data to differentiate among the processes that generated the data. It is important to note that the Profiler’s method of “observation” allows for gathering data without the need to alter the implementation of the application being observed.
Once the trace data have been transferred to the PC, the Performance Investigator Analyzer is used to import and analyze the trace data. A trace can contain performance data from threads, binaries, programs, various functions, and a variety of system sources. The Analyzer then provides several methods for viewing the trace data to provide an insight into the performance of the application.
For more information, see Analyzing Application Performance with the Carbide.c++ Performance Investigator
Availability: The performance investigator tool is available with the Professional and OEM editions of Carbide.c++ in version 1.3. From Carbide.c++ 2.0 there is only one "flavour" of carbide.c++ and that includes the performance investigator.