Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,32 @@ members = [
"stack_collapse",
"summarize",
"mmedit",
"version_checker",
]

[workspace.package]
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-lang/measureme"

[workspace.dependencies]
analyzeme = { path = "analyzeme" }
analyzeme_9_2_0 = { package = "analyzeme", git = "https://github.com/rust-lang/measureme", tag = "9.2.0" }
clap = { version = "4.5.0", features = ["derive"] }
decodeme = { path = "decodeme" }
decodeme_10_1_2 = { package = "decodeme", git = "https://github.com/rust-lang/measureme", tag = "10.1.2" }
flate2 = "1.0"
inferno = { version = "0.11", default-features = false }
log = "0.4"
measureme = { path = "measureme" }
measureme_10_1_2 = { package = "measureme", git = "https://github.com/rust-lang/measureme", tag = "10.1.2" }
memchr = "2"
memmap2 = "0.2.1"
parking_lot = "0.12.0"
perf-event-open-sys = "3.0.0"
prettytable-rs = "0.10"
rustc-hash = "1.0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
smallvec = "1.0"
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,27 @@ It contains two main modes:
[Learn more](./crox/README.md)

[wg-self-profile]: https://rust-lang.github.io/compiler-team/working-groups/self-profile/

### mmedit

`mmedit` is for editing `.mm_profdata` files generated by `measureme`.

[Learn more](./mmedit/README.md)

### mmview

`mmview` is for printing the event data generated by `measureme`.

[Learn more](./mmview/README.md)

### analyzeme

`analyzeme` is a library with common functionality for measureme tools.

[Learn more](./analyzeme/README.md)

### decodeme

`decodeme` holds the decoding definitions of the profiling event data from `measureme`.

[Learn more](./decodeme/README.md)
26 changes: 14 additions & 12 deletions analyzeme/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
[package]
name = "analyzeme"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
description = "Provides common functionality for measureme tools"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
decodeme = { path = "../decodeme" }
memchr = "2"
measureme = { path = "../measureme" }
rustc-hash = "1.0.1"
serde = { version = "1.0", features = ["derive"] }
decodeme.workspace = true
measureme.workspace = true
memchr.workspace = true
rustc-hash.workspace = true
serde.workspace = true

# Depending on older versions of this crate allows us to keep supporting older
# file formats.

# File format: v7
analyzeme_9_2_0 = { package = "analyzeme", git = "https://github.com/rust-lang/measureme", tag = "9.2.0" }
analyzeme_9_2_0.workspace = true

# File format: v8
decodeme_10_1_2 = { package = "decodeme", git = "https://github.com/rust-lang/measureme", tag = "10.1.2" }
measureme_10_1_2 = { package = "measureme", git = "https://github.com/rust-lang/measureme", tag = "10.1.2" }
decodeme_10_1_2.workspace = true
measureme_10_1_2.workspace = true

[dev-dependencies]
flate2 = "1.0"
flate2.workspace = true
3 changes: 3 additions & 0 deletions analyzeme/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# analyzeme

This crate provides a library with common functionality for measureme tools
20 changes: 11 additions & 9 deletions crox/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
[package]
name = "crox"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>"]
edition = "2018"
description = "Turns `measureme` profiling data into files that can be visualized by the Chromium performance tools"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
measureme = { path = "../measureme" }
analyzeme = { path = "../analyzeme" }
rustc-hash = "1.0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
clap = { version = "4.5.0", features = ["derive"] }
analyzeme.workspace = true
clap.workspace = true
measureme.workspace = true
rustc-hash.workspace = true
serde.workspace = true
serde_json.workspace = true
17 changes: 10 additions & 7 deletions decodeme/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
[package]
name = "decodeme"
version = "11.0.1"
edition = "2018"
description = "Decoding definitions of the profiling event data from `measureme`"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
measureme = { path = "../measureme" }
memchr = "2"
rustc-hash = "1.0.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
measureme.workspace = true
memchr.workspace = true
rustc-hash.workspace = true
serde.workspace = true
serde_json.workspace = true
21 changes: 21 additions & 0 deletions decodeme/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# decodeme

`decodeme` holds the decoding definitions of the profiling event data from `measureme`.

This makes it easy in the future to keep supporting old file formats by making
`analyzeme` depend on multiple versions of decodeme and always have it convert
data to the current format.

As an example, this is what the crate graph would look like for `[email protected]`
if we want it to support a couple of older file formats.

```text
measureme_15_0_0 <--- decodeme_15_0_0 <----+
|
measureme_16_0_0 <--- decodeme_16_0_0 <----+
|
measureme_17_0_0 <--- decodeme_17_0_0 <----+---- analyzeme_17_0_0
```

See [analyzeme/src/file_formats/v7.rs](../analyzeme/src/file_formats/v7.rs) for
an example of what it looks like to implement support for an old file format.
19 changes: 9 additions & 10 deletions flamegraph/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
[package]
name = "flamegraph"
version = "11.0.1"
authors = [
"Wesley Wiser <[email protected]>",
"Michael Woerister <michaelwoerister@posteo>",
]
edition = "2018"
description = "Reads `measureme` profiling data and outputs Flame Graph"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
measureme = { path = "../measureme" }
analyzeme = { path = "../analyzeme" }
clap = { version = "4.5.0", features = ["derive"] }
inferno = { version = "0.11", default-features = false }
analyzeme.workspace = true
clap.workspace = true
inferno.workspace = true
measureme.workspace = true
25 changes: 10 additions & 15 deletions measureme/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
[package]
name = "measureme"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
description = "Support crate for rustc's self-profiling feature"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
documentation = "https://docs.rs/measureme"
homepage = "https://github.com/rust-lang/measureme"
repository = "https://github.com/rust-lang/measureme"

[badges]
travis-ci = { repository = "rust-lang/measureme" }
repository.workspace = true

[dependencies]
log = "0.4"
parking_lot = "0.12.0"
rustc-hash = "1.0.1"
smallvec = "1.0"
log.workspace = true
parking_lot.workspace = true
rustc-hash.workspace = true
smallvec.workspace = true

[features]
nightly = []

[target.'cfg(all(target_arch = "x86_64", target_os = "linux"))'.dependencies]
memmap2 = "0.2.1"
perf-event-open-sys = "3.0.0"
memmap2.workspace = true
perf-event-open-sys.workspace = true
13 changes: 8 additions & 5 deletions mmedit/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
[package]
name = "mmedit"
version = "11.0.1"
edition = "2018"
description = "A tool for editing .mm_profdata files generated by `measureme`"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
measureme = { path = "../measureme" }
decodeme = { path = "../decodeme" }
clap = { version = "4.5.0", features = ["derive"] }
clap.workspace = true
decodeme.workspace = true
measureme.workspace = true
14 changes: 8 additions & 6 deletions mmview/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
[package]
name = "mmview"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
description = "A tool for printing the event data generated by `measureme`"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
analyzeme = { path = "../analyzeme" }
measureme = { path = "../measureme" }
clap = { version = "4.5.0", features = ["derive"] }
analyzeme.workspace = true
clap.workspace = true
measureme.workspace = true
16 changes: 16 additions & 0 deletions mmview/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# mmview

A tool for printing the event data generated by `measureme`.

## Usage

```
Usage: mmview [OPTIONS] <FILE_PREFIX>

Arguments:
<FILE_PREFIX>

Options:
-t, --thread-id <THREAD_ID> Filter to events which occured on the specified thread id
-h, --help Print help
```
14 changes: 8 additions & 6 deletions stack_collapse/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
[package]
name = "stack_collapse"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
description = "Reads `measureme` profiling data and outputs folded stack traces compatible with the Flame Graph tools"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
measureme = { path = "../measureme" }
analyzeme = { path = "../analyzeme" }
clap = { version = "4.5.0", features = ["derive"] }
analyzeme.workspace = true
clap.workspace = true
measureme.workspace = true
22 changes: 12 additions & 10 deletions summarize/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
[package]
name = "summarize"
version = "11.0.1"
authors = ["Wesley Wiser <[email protected]>", "Michael Woerister <michaelwoerister@posteo>"]
edition = "2018"
description = "Produces a human readable summary of `measureme` profiling data"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[dependencies]
measureme = { path = "../measureme" }
analyzeme = { path = "../analyzeme" }
prettytable-rs = "0.10"
rustc-hash = "1.0.1"
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
clap = { version = "4.5.0", features = ["derive"] }
analyzeme.workspace = true
clap.workspace = true
measureme.workspace = true
prettytable-rs.workspace = true
rustc-hash.workspace = true
serde.workspace = true
serde_json.workspace = true
10 changes: 0 additions & 10 deletions version_checker/Cargo.toml

This file was deleted.

1 change: 0 additions & 1 deletion version_checker/LICENSE-APACHE

This file was deleted.

1 change: 0 additions & 1 deletion version_checker/LICENSE-MIT

This file was deleted.

Loading