mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
Add rlib size benchmarks (#9005)
This commit is contained in:
parent
46c0cab763
commit
096e090576
1 changed files with 37 additions and 3 deletions
|
@ -169,6 +169,28 @@ fn run_exec_time(deno_exe: &PathBuf, target_dir: &PathBuf) -> Result<Value> {
|
||||||
Ok(Value::Object(results))
|
Ok(Value::Object(results))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn rlib_size(target_dir: &std::path::Path, prefix: &str) -> u64 {
|
||||||
|
let mut size = 0;
|
||||||
|
let mut seen = std::collections::HashSet::new();
|
||||||
|
for entry in std::fs::read_dir(target_dir.join("deps")).unwrap() {
|
||||||
|
let entry = entry.unwrap();
|
||||||
|
let os_str = entry.file_name();
|
||||||
|
let name = os_str.to_str().unwrap();
|
||||||
|
if name.starts_with(prefix) && name.ends_with(".rlib") {
|
||||||
|
let start = name.split('-').next().unwrap().to_string();
|
||||||
|
if seen.contains(&start) {
|
||||||
|
println!("skip {}", name);
|
||||||
|
} else {
|
||||||
|
seen.insert(start);
|
||||||
|
size += entry.metadata().unwrap().len();
|
||||||
|
println!("check size {} {}", name, size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert!(size > 0);
|
||||||
|
size
|
||||||
|
}
|
||||||
|
|
||||||
const BINARY_TARGET_FILES: &[&str] =
|
const BINARY_TARGET_FILES: &[&str] =
|
||||||
&["CLI_SNAPSHOT.bin", "COMPILER_SNAPSHOT.bin"];
|
&["CLI_SNAPSHOT.bin", "COMPILER_SNAPSHOT.bin"];
|
||||||
fn get_binary_sizes(target_dir: &PathBuf) -> Result<Value> {
|
fn get_binary_sizes(target_dir: &PathBuf) -> Result<Value> {
|
||||||
|
@ -180,6 +202,18 @@ fn get_binary_sizes(target_dir: &PathBuf) -> Result<Value> {
|
||||||
Value::Number(Number::from(test_util::deno_exe_path().metadata()?.len())),
|
Value::Number(Number::from(test_util::deno_exe_path().metadata()?.len())),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// add up size for everything in target/release/deps/libswc*
|
||||||
|
let swc_size = rlib_size(&target_dir, "libswc");
|
||||||
|
println!("swc {} bytes", swc_size);
|
||||||
|
sizes.insert("swc_rlib".to_string(), Value::Number(swc_size.into()));
|
||||||
|
|
||||||
|
let rusty_v8_size = rlib_size(&target_dir, "librusty_v8");
|
||||||
|
println!("rusty_v8 {} bytes", rusty_v8_size);
|
||||||
|
sizes.insert(
|
||||||
|
"rusty_v8_rlib".to_string(),
|
||||||
|
Value::Number(rusty_v8_size.into()),
|
||||||
|
);
|
||||||
|
|
||||||
// Because cargo's OUT_DIR is not predictable, search the build tree for
|
// Because cargo's OUT_DIR is not predictable, search the build tree for
|
||||||
// snapshot related files.
|
// snapshot related files.
|
||||||
for file in walkdir::WalkDir::new(target_dir) {
|
for file in walkdir::WalkDir::new(target_dir) {
|
||||||
|
@ -386,6 +420,9 @@ fn main() -> Result<()> {
|
||||||
|
|
||||||
let mut new_data: Map<String, Value> = Map::new();
|
let mut new_data: Map<String, Value> = Map::new();
|
||||||
|
|
||||||
|
new_data.insert("binary_size".to_string(), get_binary_sizes(&target_dir)?);
|
||||||
|
new_data.insert("bundle_size".to_string(), bundle_benchmark(&deno_exe)?);
|
||||||
|
|
||||||
new_data.insert(
|
new_data.insert(
|
||||||
"created_at".to_string(),
|
"created_at".to_string(),
|
||||||
Value::String(
|
Value::String(
|
||||||
|
@ -416,9 +453,6 @@ fn main() -> Result<()> {
|
||||||
run_exec_time(&deno_exe, &target_dir)?,
|
run_exec_time(&deno_exe, &target_dir)?,
|
||||||
);
|
);
|
||||||
|
|
||||||
new_data.insert("binary_size".to_string(), get_binary_sizes(&target_dir)?);
|
|
||||||
new_data.insert("bundle_size".to_string(), bundle_benchmark(&deno_exe)?);
|
|
||||||
|
|
||||||
// Cannot run throughput benchmark on windows because they don't have nc or
|
// Cannot run throughput benchmark on windows because they don't have nc or
|
||||||
// pipe.
|
// pipe.
|
||||||
if cfg!(not(target_os = "windows")) {
|
if cfg!(not(target_os = "windows")) {
|
||||||
|
|
Loading…
Reference in a new issue