3 releases (breaking)
0.3.0 | Aug 5, 2020 |
---|---|
0.2.0 | Aug 4, 2020 |
0.1.0 | Aug 4, 2020 |
#90 in #profiler
6KB
60 lines
Function attributes for Optick Profiler
A set of procedural macros to simplify performance instrumentation of the code.
How to use
In Cargo.toml
add:
[dependencies]
optick = "1.3.2"
optick_attr = "0.3.0"
#optick_attr::profile
Instrument function. Example:
#[optick_attr::profile]
fn calc() {
// Do some stuff
}
#[optick_attr::capture("capture_name")]
Generate performance capture for function. Capture is saved to {working_dir}/capture_name(date-time).opt. Example:
#[optick_attr::capture("capture_name")]
pub fn main() {
calc();
}
GUI
Use Optick GUI to open saved *.opt capture for further analysis: https://github.com/bombomby/optick/releases
Optick API
Fully compatible with Rust Optick API.
Run as Administartor to collect ETW events
Optick uses ETW to collect hardware counters: switch-contexts, auto-sampling, CPU core utilization, etc. Run your app as administrator to enable the collection of ETW events:
Start-Process cargo run -Verb runAs
Dependencies
~7.5MB
~37K SLoC