Optimize Arm applications and shared libraries with BOLT
Introduction
Overview
Instrument MySQL with BOLT
Run a new workload using BOLT and merge the results
Instrument shared libraries with BOLT
Review the performance results
Next Steps
Optimize Arm applications and shared libraries with BOLT
Who is this for?
This is an advanced topic for performance engineers and software developers targeting Arm platforms who want to optimize application binaries and shared libraries using BOLT.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Instrument and optimize application binaries for individual workload features using BOLT
- Collect and merge separate BOLT profiles to improve code coverage
- Optimize shared libraries independently of application binaries
- Integrate optimized shared libraries into applications
- Evaluate and compare performance across baseline, isolated, and merged optimization scenarios
Prerequisites
Before starting, you will need the following:
- An Arm-based Linux system with BOLT and Linux Perf installed
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
libssl.so and libcrypto.so suitable for BOLT, collect profiles, and apply optimizations independently from the main binary. Finally, you’ll compare results across baseline, isolated, and merged scenarios using a consistent Sysbench configuration to assess the impact of application and library-level optimizations on throughput and latency.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
.fdata format, such as profile-writeonly.fdata. These files are later used to optimize the binary and can be merged to improve coverage..fdata profile for each workload.libssl.so and libcrypto.so. If system libraries are stripped, rebuild OpenSSL from source with relocations enabled so BOLT can instrument and optimize them.--time=0 --events=10000 to complete exactly 10,000 requests per thread. Use this consistent configuration to compare baseline, application-only, and merged-with-library optimization scenarios.