Struct iai_callgrind::Tool
source · pub struct Tool(/* private fields */);default only.Expand description
Configure to run other valgrind tools like DHAT or Massif in addition to callgrind
For a list of possible tools see ValgrindTool.
See also the Valgrind User Manual for details about possible tools and their command line arguments.
§Examples
use iai_callgrind::{main, LibraryBenchmarkConfig, Tool, ValgrindTool};
main!(
config = LibraryBenchmarkConfig::default()
.tool(Tool::new(ValgrindTool::DHAT));
library_benchmark_groups = some_group
);Implementations§
source§impl Tool
impl Tool
sourcepub fn new(tool: ValgrindTool) -> Self
pub fn new(tool: ValgrindTool) -> Self
Create a new Tool configuration
§Examples
use iai_callgrind::{Tool, ValgrindTool};
let tool = Tool::new(ValgrindTool::DHAT);sourcepub fn enable(&mut self, value: bool) -> &mut Self
pub fn enable(&mut self, value: bool) -> &mut Self
If true, enable running this Tool (Default: true)
§Examples
use iai_callgrind::{Tool, ValgrindTool};
let tool = Tool::new(ValgrindTool::DHAT).enable(true);sourcepub fn args<I, T>(&mut self, args: T) -> &mut Self
pub fn args<I, T>(&mut self, args: T) -> &mut Self
Pass one or more arguments directly to the valgrind Tool
Some command line arguments for tools like DHAT (for example --trace-children=yes) don’t
work without splitting the output into multiple files. Use Tool::outfile_modifier to
configure splitting the output.
§Examples
use iai_callgrind::{Tool, ValgrindTool};
let tool = Tool::new(ValgrindTool::DHAT).args(["--num-callers=5", "--mode=heap"]);sourcepub fn outfile_modifier<T>(&mut self, modifier: T) -> &mut Self
pub fn outfile_modifier<T>(&mut self, modifier: T) -> &mut Self
Add an output and log file modifier like %p or %n
The modifier is appended to the file name’s default extensions *.out and *.log
All output file modifiers specified in the Valgrind
Documentation of
--log-file can be used. If using %q{ENV} don’t forget, that by default all environment
variables are cleared. Either specify to not clear the environment or to
pass-through/define environment variables.
§Examples
The following example will result in file names ending with the PID of processes including
their child processes as extension. See also the Valgrind
Documentation of
--trace-children and --log-file for more details.
use iai_callgrind::{LibraryBenchmarkConfig, main, Tool, ValgrindTool};
main!(
config = LibraryBenchmarkConfig::default()
.tool(
Tool::new(ValgrindTool::DHAT)
.args(["--trace-children=yes"])
.outfile_modifier("%p")
);
library_benchmark_groups = some_group
);