#timing #profiling #proc-macro #execution-time #measure-time

macro code-timing-macros

Macros for easily measuring execution time of various code pieces

5 releases

0.0.5 Oct 23, 2024
0.0.4 Oct 22, 2024
0.0.3 Sep 5, 2024
0.0.2 Sep 4, 2024
0.0.1 Sep 3, 2024

#885 in Development tools

Download history 399/week @ 2024-09-02 7/week @ 2024-09-16 1/week @ 2024-10-07 6/week @ 2024-10-14 366/week @ 2024-10-21 13/week @ 2024-11-04

385 downloads per month

Apache-2.0

9KB
76 lines

TestLintCrates.io Version

code-timing-macros!

This crate aims to provide useful, easy to use macros to measure the time taken to execute some code. At present, this is alpha quality, and subject to changes.

Contributions welcomed!

Macros:

  • Adding #[time_function] to a function causes the program to print how long a function took to run when it's finished.
  • Use time_snippet!() to report the timing for a snippet (or block) of code.

Capabilities:

  • Works on functions and code blocks with or without a return.
  • Async functions and code blocks tested and seem to work. Please report any issues.
  • Const functions won't work since the contents of the function won't be determinable at compile time.

Features

The following crate features are available:

  • release: by default, the macros will not modify the code for release builds. This feature prevents that, so release builds will report execution time.
  • tracing: by default, the macros will print elapsed time information to standard output, but this feature instead sends information to the log using the tracing crate.

Examples

Dependencies

~235–760KB
~17K SLoC