Struct allocative::FlameGraphBuilder
source · pub struct FlameGraphBuilder { /* private fields */ }
Expand description
Build a flamegraph from given root objects.
§Example
use allocative::Allocative;
use allocative::FlameGraphBuilder;
#[derive(Allocative)]
struct Foo {
data: String,
};
let foo1 = Foo {
data: "Hello, world!".to_owned(),
};
let foo2 = Foo {
data: "Another message!".to_owned(),
};
let mut flamegraph = FlameGraphBuilder::default();
flamegraph.visit_root(&foo1);
flamegraph.visit_root(&foo2);
let flamegraph_src = flamegraph.finish().flamegraph();
And now flamegraph_src
can be fed to either flamegraph.pl or inferno.
Implementations§
source§impl FlameGraphBuilder
impl FlameGraphBuilder
pub fn root_visitor(&mut self) -> Visitor<'_>
sourcepub fn visit_root(&mut self, root: &dyn Allocative)
pub fn visit_root(&mut self, root: &dyn Allocative)
Collect tree sizes starting from given root.
sourcepub fn visit_global_roots(&mut self)
pub fn visit_global_roots(&mut self)
Collect data from global roots registered with
register_root
.
sourcepub fn finish_and_write_flame_graph(self) -> String
pub fn finish_and_write_flame_graph(self) -> String
Finish building the flamegraph and return the flamegraph output.
Trait Implementations§
source§impl Debug for FlameGraphBuilder
impl Debug for FlameGraphBuilder
source§impl Default for FlameGraphBuilder
impl Default for FlameGraphBuilder
source§fn default() -> FlameGraphBuilder
fn default() -> FlameGraphBuilder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for FlameGraphBuilder
impl Send for FlameGraphBuilder
impl !Sync for FlameGraphBuilder
impl Unpin for FlameGraphBuilder
impl UnwindSafe for FlameGraphBuilder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more