Struct iai_callgrind::Tool
source · pub struct Tool(/* private fields */);
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
);