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
176 changes: 113 additions & 63 deletions Cargo.lock

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,19 @@ members = ["collector", "collector/benchlib", "site", "database", "intern"]
exclude = ["rust/src"]
resolver = "2"

[workspace.dependencies]
anyhow = "1"
chrono = "0.4"
clap = "4.1"
env_logger = "0.10"
hashbrown = "0.14"
lazy_static = "1"
log = "0.4"
reqwest = "0.11"
serde = "1"
serde_json = "1"
tokio = "1.36"

[profile.release.package.site]
debug = 1

Expand Down
32 changes: 16 additions & 16 deletions collector/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,33 @@ name = "collector"
version = "0.1.0"
edition = "2021"
description = "Collects Rust performance data"
rust-version = "1.75.0"

[dependencies]
clap = { version = "4.1", features = ["derive"] }
env_logger = "0.10"
anyhow = "1"
anyhow = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
clap = { workspace = true, features = ["derive"] }
env_logger = { workspace = true }
lazy_static = { workspace = true }
log = { workspace = true }
reqwest = { workspace = true, features = ["blocking", "json"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["rt", "process"] }

thiserror = "1"
log = "0.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tempfile = "3"
libc = "0.2"
chrono = { version = "0.4", features = ["serde"] }
lazy_static = "1"
semver = "1.0"
reqwest = { version = "0.11", features = ["json", "blocking"] }
xz2 = "0.1.3"
tar = "0.4"
tokio = { version = "1.6", features = ["rt", "process"] }
database = { path = "../database" }
intern = { path = "../intern" }
futures = "0.3.5"
num_cpus = "1.13"
jobserver = "0.1.21"
snap = "1"
filetime = "0.2.14"
walkdir = "2"
flate2 = { version = "1.0.22", features = ["rust_backend"] }
rayon = "1.5.2"
cargo_metadata = "0.15.0"
rayon = "1"
cargo_metadata = "0.18"
thousands = "0.2.0"
rustc-demangle = { version = "0.1", features = ["std"] }
similar = "2.2"
Expand All @@ -41,10 +39,12 @@ object = "0.36.0"
tabled = { version = "0.14.0", features = ["ansi-str"] }
humansize = "2.1.3"
regex = "1.7.1"

analyzeme = "12.0.0"
inquire = "0.7.5"

benchlib = { path = "benchlib" }
database = { path = "../database" }

[target.'cfg(windows)'.dependencies]
miow = "0.3"
Expand Down
13 changes: 7 additions & 6 deletions collector/benchlib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@ description = "Library for defining and measuring benchmarks of Rust code"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow = "1.0.61"
serde = { version = "1.0.143", features = ["derive"] }
serde_json = "1.0.83"
log = "0.4.17"
env_logger = "0.10.0"
clap = { version = "4.1", features = ["derive", "string"] }
anyhow = { workspace = true }
clap = { workspace = true, features = ["derive", "string"] }
env_logger = { workspace = true }
log = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }

libc = "0.2"
flate2 = { version = "1", optional = true }
crabgrind = { version = "0.1.10", optional = true }
Expand Down
7 changes: 6 additions & 1 deletion collector/src/compile/benchmark/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,12 @@ impl Benchmark {
// different codegen backends are stored in separate directories.
let preparation_start = std::time::Instant::now();
std::thread::scope::<_, anyhow::Result<()>>(|s| {
let server = jobserver::Client::new(num_cpus::get()).context("jobserver::new")?;
let server = jobserver::Client::new(
std::thread::available_parallelism()
.expect("Cannot get core count")
.get(),
)
.context("jobserver::new")?;
let mut threads = Vec::with_capacity(target_dirs.len());
for ((backend, profile), prep_dir) in &target_dirs {
let server = server.clone();
Expand Down
5 changes: 4 additions & 1 deletion collector/src/utils/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ use anyhow::Context;
use std::collections::hash_map::DefaultHasher;
use std::ffi::OsStr;
use std::fs;
use std::fs::File;
use std::hash::{Hash, Hasher};
use std::path::{Component, Path, PathBuf};
use std::process::Command;
use std::time::SystemTime;

#[cfg(windows)]
pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> anyhow::Result<()> {
Expand Down Expand Up @@ -43,7 +45,8 @@ pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> anyhow::Result<

/// Touch a file, resetting its modification time.
pub fn touch(path: &Path) -> anyhow::Result<()> {
filetime::set_file_mtime(path, filetime::FileTime::now())
let file = File::options().read(true).open(path)?;
file.set_modified(SystemTime::now())
.with_context(|| format!("touching file {:?}", path))?;

Ok(())
Expand Down
23 changes: 13 additions & 10 deletions database/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,25 @@ authors = ["Mark Rousskov <[email protected]>"]
edition = "2021"

[dependencies]
hashbrown = { version = "0.14", features = ["serde"] }
serde = { version = "1", features = ["derive"] }
anyhow = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
clap = { workspace = true, features = ["cargo"] }
env_logger = { workspace = true }
hashbrown = { workspace = true, features = ["serde"] }
lazy_static = { workspace = true }
log = { workspace = true }
reqwest = { workspace = true }
serde = { workspace = true, features = ["derive"] }
tokio = { workspace = true, features = ["sync", "macros"] }

rusqlite = { version = "0.28", features = ["bundled"] }
tokio-postgres = { version = "0.7", features = ["with-chrono-0_4", "runtime"] }
anyhow = "1"
async-trait = "0.1"
tokio = { version = "1.6", features = ["sync", "macros", "parking_lot"] }
intern = { path = "../intern" }
chrono = { version = "0.4.38", features = ["serde"] }
reqwest = { version = "0.11" }
postgres-native-tls = "0.5"
native-tls = "0.2"
env_logger = "0.10"
futures-util = "0.3.5"
log = "0.4"
bytes = "1"
csv = "1"
clap = { version = "4.1", features = ["cargo"] }
x509-cert = { version = "0.2.5", features = ["pem"] }

intern = { path = "../intern" }
8 changes: 4 additions & 4 deletions intern/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ authors = ["Mark Rousskov <[email protected]>"]
edition = "2021"

[dependencies]
hashbrown = { workspace = true }
lazy_static = { workspace = true }
serde = { workspace = true, features = ["derive"] }

bumpalo = "3.2"
parking_lot = "0.12"
arc-swap = "1.3"
hashbrown = "0.14"
lazy_static = "1"
serde = "1"
serde_derive = "1"
2 changes: 1 addition & 1 deletion intern/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ pub fn intern<T: InternString>(value: &str) -> T {
})
}

#[derive(serde_derive::Serialize, Copy, Clone, PartialEq, Eq)]
#[derive(serde::Serialize, Copy, Clone, PartialEq, Eq)]
#[serde(into = "&'static str")]
pub struct ArenaStr(NonNull<u8>);

Expand Down
33 changes: 16 additions & 17 deletions site/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,33 @@ version = "0.1.0"
edition = "2021"

[dependencies]
env_logger = "0.10"
anyhow = "1"
anyhow = { workspace = true }
chrono = { workspace = true }
env_logger = { workspace = true }
hashbrown = { workspace = true, features = ["serde"] }
lazy_static = { workspace = true }
log = { workspace = true }
reqwest = { workspace = true, features = ["blocking", "json"] }
serde = { workspace = true, features = ["rc"] }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["macros", "time"] }

futures = "0.3"
tokio = { version = "1.26", features = ["macros", "time"] }
log = "0.4"
serde = { version = "1", features = ["rc"] }
serde_derive = "1"
serde_json = "1"
hyper = { version = "0.14", features = ["server", "stream"] }
headers = "0.3"
http = "0.2"
chrono = "0.4"
rmp-serde = "1.1"
brotli = "3.3.3"
semver = "1.0"
ring = "0.16.10"
hex = "0.4.2"
regex = "1"
lazy_static = "1"
reqwest = { version = "0.11", features = ["json", "blocking"] }
toml = "0.7"
rust_team_data = { git = "https://github.com/rust-lang/team" }
parking_lot = "0.12"
snap = "1"
itertools = "0.10"
hashbrown = { version = "0.14", features = ["serde"] }
arc-swap = "1.3"
database = { path = "../database" }
bytes = "1.0"
url = "2"
analyzeme = "12.0.0"
Expand All @@ -47,14 +46,14 @@ humansize = "2"
lru = "0.12.0"
ruzstd = "0.7.0"

collector = { path = "../collector" }
database = { path = "../database" }

[target.'cfg(unix)'.dependencies]
jemallocator = "0.5"
jemalloc-ctl = "0.5"

[dependencies.collector]
path = "../collector"

[build-dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
toml = "0.7"