#profiler #performance #optick #api-bindings

optick-attr

超级轻量级性能分析器:函数属性

3个版本 (破坏性更新)

0.3.0 2020年8月5日
0.2.0 2020年8月4日
0.1.0 2020年8月4日

#396 in 性能分析

MIT 协议

6KB
60 代码行

Optick Profiler的函数属性

Build Status Crates.io Docs

一组过程宏,用于简化代码的性能监控。[图片链接]

使用方法

Cargo.toml 中添加

[dependencies]
optick = "1.3.2"
optick_attr = "0.3.0"

#optick_attr::profile

监控函数。示例

#[optick_attr::profile]
fn calc() {
    // Do some stuff
}

#[optick_attr::capture("capture_name")]

为函数生成性能捕获。捕获保存到 {working_dir}/capture_name(date-time).opt。示例

#[optick_attr::capture("capture_name")]
pub fn main() {
    calc();
}

GUI

使用Optick GUI打开保存的 *.opt 捕获以进行进一步分析:[链接]

Optick API

完全兼容Rust Optick API

以管理员身份运行以收集ETW事件

Optick使用ETW收集硬件计数器:上下文切换、自动采样、CPU核心利用率等。以管理员身份运行您的应用程序以启用ETW事件的收集

Start-Process cargo run -Verb runAs

依赖项

~7.5MB
~36K SLoC