#instrument #attributes #macro #record #function #time-graph

macro time-graph-macros

Attribute macro to instrument functions and record their executing time with the time-graph crate

3 unstable releases

0.3.2 Sep 25, 2024
0.3.0 Feb 28, 2023
0.1.0 Mar 5, 2021

#82 in #instrument

Download history 633/week @ 2024-09-01 366/week @ 2024-09-08 944/week @ 2024-09-15 977/week @ 2024-09-22 525/week @ 2024-09-29 544/week @ 2024-10-06 446/week @ 2024-10-13 463/week @ 2024-10-20 1035/week @ 2024-10-27 806/week @ 2024-11-03 930/week @ 2024-11-10 1512/week @ 2024-11-17 1827/week @ 2024-11-24 1136/week @ 2024-12-01 1583/week @ 2024-12-08 935/week @ 2024-12-15

5,568 downloads per month
Used in 2 crates (via time-graph)

Apache-2.0/MIT

6KB
78 lines

A procedural macro attribute for instrumenting functions with time-graph.

time-graph provides always-on profiling for your code, allowing to record the execution time of functions, spans inside these functions and the actual call graph at run-time. This crate provides the #[instrument] procedural macro attribute.

Note that this macro is also re-exported by the main time-graph crate.

Usage

First, add this to your Cargo.toml:

[dependencies]
time-graph-macros = "0.1.0"

The #[instrument] attribute can now be added to a function to automatically create a time-graph callsite, and enter the corresponding span when that function is called. For example:

use time_graph_macros::instrument;

#[instrument]
pub fn my_function(my_arg: usize) {
    // ...
}

Dependencies

~215–650KB
~16K SLoC