Prerequisites
In order to use Iai-Callgrind, you must have Valgrind installed. This means that Iai-Callgrind cannot be used on platforms that are not supported by Valgrind.
Debug Symbols
It's required to run the Iai-Callgrind benchmarks with debugging symbols
switched on. For example in your ~/.cargo/config
or your project's
Cargo.toml
:
[profile.bench]
debug = true
Now, all benchmarks which are run with cargo bench
include the debug symbols.
(See also Cargo
Profiles and Cargo
Config).
It's required that settings like strip = true
or other configuration options
stripping the debug symbols need to be disabled explicitly for the bench
profile if you have changed this option for the release
profile. For example:
[profile.release]
strip = true
[profile.bench]
debug = true
strip = false
Valgrind Client Requests
If you want to make use of the mighty Valgrind Client Request
Mechanism
shipped with Iai-Callgrind, you also need libclang
(clang >= 5.0) installed.
See also the requirements of
bindgen and of
cc.
More details on the usage and requirements of Valgrind Client Requests in this chapter of the guide.
Installation of Valgrind
Iai-Callgrind is intentionally independent of a specific version of valgrind.
However, Iai-Callgrind was only tested with versions of valgrind >= 3.20.0
. It
is therefore highly recommended to use a recent version of valgrind. Bugs get
fixed, the supported platforms are expanded ... Also, if you want or need to,
building valgrind from
source
is usually a straight-forward process. Just make sure the valgrind
binary is
in your $PATH
so that Iai-callgrind can find it.
Installation of valgrind with your package manager
Alpine Linux
apk add just
Arch Linux
pacman -Sy valgrind
Debian/Ubuntu
apt-get install valgrind
Fedora Linux
dnf install valgrind
FreeBSD
pkg install valgrind