Percepio's Tracealyzer gives developers unprecedented insight into runtime behavior, allowing for reduced troubleshooting time and improved software quality, performance, and reliability.
Complex software problems which otherwise may require many hours or days to solve, can be diagnosed quickly, often in a tenth of the time otherwise required. This saves you many hours of troubleshooting time. Moreover, the improved software quality resulting from using Tracealyzer can reduce bug counts, and improve customer satisfaction.
Learn more on the Percepio web site.
The insight provided by Tracealyzer can help you find opportunities for optimizing your software. You might have unnecessary resource conflicts in your software, which are "low hanging fruit" for optimization, and where a minor change can give a significant improvement in real‐time responsiveness and performance. By using Tracealyzer, you can reduce your troubleshooting time, and spend more time developing valuable new features. This means a general increase in development efficiency and a better ability to deliver high‐quality embedded software within budget.
Faster Troubleshooting: Tracealyzer allows for capturing rare, sporadic errors which otherwise can be very hard to reproduce and analyze. Many problems can be solved in a fraction of the time otherwise required.
Higher Quality: Tracealyzer is not only a “fire extinguisher” to use on specific hard problems. Discover and avoid potential future problems, such as blocking system calls that are close to a timeout. When designing new features, you can avoid unsuitable designs that could cause problems related to timing, CPU usage, scheduling or other task interactions.
Better Performance: Find new ways of improving the software performance. There might be “hot-spots” in your software’s behavior where small changes in timing may give substantial performance improvements. Tracealyzer provides several ways of finding such hot-spots. Get a more responsive software system, or fit more software functionality into the same hardware platform.
Control System Tuning: Control system developers can benefit from the support for plotting custom application data. Plot your inputs and outputs, and correlated with the task scheduling to better understand how your software timing affects control performance.
Other Benefits: Tracealyzer can help getting new developers productive faster and allow you to evaluate the performance of third-party software, such as embedded databases, touch screen drivers or communication stacks. And since we support several common operating systems for embedded software, you can probably keep the Tracealyzer support even if changing operating system.
Tracealyzer provides over 20 graphical views of the runtime behavior of your application, an arsenal of perspectives that allows you to quickly find relevant parts of the trace. The main trace view shown on the first page uses a vertical time-line where events like kernel calls are shown using text labels.
There are several supporting views with horizontal time-lines, which can be shown in a common window with synchronized scrolling. The screenshot on the left shows an example with four synchronized views:
Horizontal Trace View: Shows the scheduling on a horizontal time-line to facilitate correlation with other views.
CPU Load Graph: Shows the amount of CPU time used by each task and interrupt handler, and the total CPU usage.
User Event Signal Plot: Shows a plot of application data logged in User Events (read more below).
Kernel Object Utilization: Shows the utilization of buffered kernel objects, such as message queues. By double-clicking on a data point or interval, you focus the main trace view on the selected point in time.
Tracealyzer supports User Events, allowing you to log any event or data in your application. They appear as yellow labels in the trace view. User Events can be used as an alternative (or complement) to classic debug “printf” calls and for plotting of user data. Since User Events are stored very quickly, they can be used also in time-critical code. And since you get the User Events into the Tracealyzer views, it is easy to correlate these with overall system behavior.
The User Event Signal Plot view allows you to plot any data logged as User Events. This is highly useful for analysis of control loops and other time-dependent algorithms as it allows you to correlate the data points with the other Tracealyzer views to find the cause behind anomalies in the plot. For instance, incorrect scheduling priorities or CPU overload might have delayed the computation.