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 Freeze for FlameGraphBuilder
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