11 releases
0.2.1 | Dec 21, 2021 |
---|---|
0.2.0 | Dec 21, 2021 |
0.1.8 | Dec 18, 2021 |
0.1.7 | Dec 1, 2020 |
0.1.5 | Nov 29, 2020 |
#336 in Profiling
52 downloads per month
58KB
1.5K
SLoC
cargo-profile
Profiling rust program made easy.
Installation
cargo install cargo-profile
Features
instrument
Supported os: mac os
.
Fork of https://github.com/cmyr/cargo-instruments, but uses cargo
cli for compilation to avoid removing cache.
Usage
cargo profile instruments -t time bench --bench parser
flamegraph
Supported os: linux
, mac os
.
Usage
# Just use cargo's syntax
cargo profile flamegraph bench --lib
# If you have a my_bench in benches directory, you can do
cargo profile flamegraph bench --bench my_bench
bin-path
Binaries built by cargo have some random strings as a suffix, and it makes invoking files generated by cargo harder.
Here comes cargo profile bin-path
to aid it.
Usage
perf record `cargo profile bin-path bench --bench fixture`
cpu time profiling
You can get cpu time usage per function on mac os using the command below.
(For linux, you can use perf directly, although I'll add linux aupport soon.)
Usage
cargo profile cpu per-fn bench --bench fixture
trace
Note: It does not support dtrace
and perf
yet. Same as above, I'll implement it if there's a need.
xctrace
xctrace
is a tool to profile applications on
Usage
cargo profile trace xctrace bench --lib
cargo profile trace xctrace bench --bench my_bench
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~9MB
~158K SLoC