4个稳定版本
1.3.4 | 2020年8月5日 |
---|---|
1.3.2 | 2020年8月4日 |
1.3.1 | 2020年8月3日 |
在 性能分析 类别中排名 125
每月下载量 339
在 7 个Crates中使用(其中3个直接使用)
6MB
251 行
包含 (静态库,3.5MB) external/lib/x64/OptickCore_MT.lib,(静态库,2.5MB) external/lib/x64/OptickCore_MD.lib
Rust API for Optick Profiler
支持平台
Windows (x64) | Linux | MacOS |
---|---|---|
是 | 否(进行中) | 否(进行中) |
如何使用
在 Cargo.toml
中添加
[dependencies]
optick = "1.3.4"
示例 1(通用应用程序、自动化等)
fn calc(n: u32) {
// Profile current scope (automatically extracts current function name)
// You could also specify a custom name if needed - e.g. optick::scope!("calc");
optick::event!();
// Attach custom data tag to the capture (i32, u32, u64, f32, str, vec3)
optick::tag!("number", n);
optick::tag!("name", "Bob");
optick::tag!("position", (10.0f32, -12.0f32, 14.0f32));
...
}
pub fn main() {
// Start a new capture
optick::start_capture();
calc(42);
// Stop and save current capture to {working_dir}/capture_name(date-time).opt
optick::stop_capture("capture_name");
}
示例 2(游戏)
fn update(frame_num: u32) {
optick::event!();
optick::tag!("frame", frame_num);
std::thread::sleep(std::time::Duration::from_millis(33));
}
pub fn main() {
let mut frame = 0;
loop {
optick::next_frame();
update(frame);
frame = frame + 1;
}
}
GUI
使用Optick GUI打开保存的 *.opt 捕获文件以进行进一步分析: https://github.com/bombomby/optick/releases
下载最新可用的 Optick_vX.X.X.zip => 运行 Optick.exe。
视频教程(功能概述)
过程宏
Optick支持一系列过程宏,用于简化代码标记的过程: https://crates.io/crates/optick-attr
// Instrument current function
#[optick_attr::profile]
fn calc() {
// Do some stuff
}
//Generate performance capture for function to {working_dir}/capture_name(date-time).opt.
#[optick_attr::capture("capture_name")]
pub fn main() {
calc();
}
功能标志
enable
- 此标志默认启用并启用Optick仪表
以管理员身份运行以收集ETW事件
Optick使用ETW收集硬件计数器:切换上下文、自动采样、CPU核心利用率等。以管理员身份运行您的应用程序以启用ETW事件的收集
Start-Process cargo run -Verb runAs