Improve performance of the whole stack with KDAB specialists
KDAB’s unique expertise in analyzing and profiling the entire code base helps you get to the bottom of your specific performance issue. KDAB offers in-depth experience in analyzing and improving the performance on desktop, mobile and embedded platforms. Our experts are intimately familiar with profiling tools such as valgrind, heaptrack, massif-visualizer, clang, GammaRay, VTune, perf or oprofile, as well as graphics related tools such as gltrace, NVidia’s nSight, AMD CodeXL and Vivante vProfile.
During a KDAB profiling workshops we tend to tackle one or multiple of the following topics:
- the smoothness of the user interface, measured in frames per second
- slow system boot-up time
- slow responsiveness to user input
- usage of software resources like the CPU, how well it parallelizes to multiple CPUs
- tuning for small memory or disk footprint
- lack of battery performance/how quickly the battery is drained
- the efficient use of a specific interface…
Profiling process and profiling tools
In order to improve the performance characteristics, the right parameters need to be measured and profiled in a reliable and reproducible manner. This exercise requires in-depth knowledge about the right tools to use as well as how to use them in the correct manner.
Our KDAB engineers have even written some of the profiling tools themselves and we also contribute to many of the profiling tools widely used in the software industry. In KDAB we have had long experience in selecting and using the best profiling tools for our own projects as well as for dedicated profiling projects. Based upon our expertise we will help you to draw meaningful and actionable conclusions from the gathered data.
In all performance analysis and profiling work we look at the whole stack from the hardware to the operating systems to drivers, to middleware, application code and to the user interface. Performance issues often do not have a single cause but result from complex interactions between the layers of a software system.
Modules of a typical* profiling workshop:
- assess what performance means to you
- find the right tools to measure those parameters and set them up
- create reliable, repeatable infrastructure for running benchmarks
- identify hotspots and performance issues
- suggest changes
- clarify how to judge whether the changes have a positive
*Whether the solution to a problem is a change in your application code, or a different way to set up the system as a whole, our aim is to tailor the workshop to your needs, so we can address the issue at its root cause. Sometimes that means recommending a different driver, sometimes rewriting an algorithm in the business logic or i.e. rewriting part of the user interface using an OpenGL shader to make efficient use of the GPU.
We know that performance issues often are tackled late in the project and need to be addressed with great urgency. Get in touch! We will do our best to help you out as quickly as possible, often within hours.