From ae1e51dbcabfcf0ea1d7e4fa953ebc2ef6a220b1 Mon Sep 17 00:00:00 2001 From: Jamie Pine Date: Sun, 10 Aug 2025 02:47:47 -0700 Subject: [PATCH] Enhance benchmark reporting by adding duration metrics - Updated the CSV structure for whitepaper metrics to include a new 'Duration_s' column, providing insights into the time taken for each phase of the benchmarking process. - Modified the CSV reporting logic in the Rust code to calculate and include phase-specific durations, improving the clarity and usability of performance data. - Adjusted the LaTeX document to reflect the updated CSV format, ensuring accurate representation of benchmark results in the whitepaper. These changes aim to improve the analysis of performance metrics within the Spacedrive system. --- .../results/shape_large-aggregation-hdd.json | 33 ++++++++++++++++++ .../shape_large-indexing_discovery-hdd.json | 33 ++++++++++++++++++ .../results/shape_medium-aggregation-hdd.json | 33 ++++++++++++++++++ ...ape_medium-content_identification-ssd.json | 33 ++++++++++++++++++ .../shape_medium-indexing_discovery-hdd.json | 33 ++++++++++++++++++ .../results/shape_small-aggregation-hdd.json | 33 ++++++++++++++++++ ...hape_small-content_identification-ssd.json | 33 ++++++++++++++++++ .../shape_small-indexing_discovery-hdd.json | 33 ++++++++++++++++++ .../benchmarks/results/whitepaper_metrics.csv | 18 +++++----- core-new/benchmarks/src/reporting/csv.rs | 29 ++++++++------- core-new/whitepaper/spacedrive.pdf | Bin 1054680 -> 1054679 bytes core-new/whitepaper/spacedrive.tex | 6 ++-- 12 files changed, 294 insertions(+), 23 deletions(-) create mode 100644 core-new/benchmarks/results/shape_large-aggregation-hdd.json create mode 100644 core-new/benchmarks/results/shape_large-indexing_discovery-hdd.json create mode 100644 core-new/benchmarks/results/shape_medium-aggregation-hdd.json create mode 100644 core-new/benchmarks/results/shape_medium-content_identification-ssd.json create mode 100644 core-new/benchmarks/results/shape_medium-indexing_discovery-hdd.json create mode 100644 core-new/benchmarks/results/shape_small-aggregation-hdd.json create mode 100644 core-new/benchmarks/results/shape_small-content_identification-ssd.json create mode 100644 core-new/benchmarks/results/shape_small-indexing_discovery-hdd.json diff --git a/core-new/benchmarks/results/shape_large-aggregation-hdd.json b/core-new/benchmarks/results/shape_large-aggregation-hdd.json new file mode 100644 index 000000000..998111c4b --- /dev/null +++ b/core-new/benchmarks/results/shape_large-aggregation-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 16507, + "dirs_per_s": 275.1166666666667, + "durations": { + "content_s": 0.0, + "discovery_s": 175.4, + "processing_s": 60.0, + "total_s": 60.0 + }, + "errors": 0, + "files": 100000, + "files_per_s": 1666.6666666666667, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "f01681c8-bc82-4e05-a26e-eeaedc3e1239", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_large" + ], + "recipe_name": "shape_large", + "timestamp_utc": "2025-08-10T09:46:25.346840+00:00" + }, + "scenario": "aggregation", + "total_gb": 11882.38 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_large-indexing_discovery-hdd.json b/core-new/benchmarks/results/shape_large-indexing_discovery-hdd.json new file mode 100644 index 000000000..b63a0d234 --- /dev/null +++ b/core-new/benchmarks/results/shape_large-indexing_discovery-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 16507, + "dirs_per_s": 281.1, + "durations": { + "content_s": 0.0, + "discovery_s": 58.7, + "processing_s": 51.6, + "total_s": 58.72 + }, + "errors": 0, + "files": 100000, + "files_per_s": 1702.9, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "8085806f-d7e3-4cfc-9c66-9b0ec782e3be", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_large" + ], + "recipe_name": "shape_large", + "timestamp_utc": "2025-08-10T09:42:47.682209+00:00" + }, + "scenario": "indexing-discovery", + "total_gb": 11882.38 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_medium-aggregation-hdd.json b/core-new/benchmarks/results/shape_medium-aggregation-hdd.json new file mode 100644 index 000000000..3ffa89fa2 --- /dev/null +++ b/core-new/benchmarks/results/shape_medium-aggregation-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 1847, + "dirs_per_s": 302.78688524590166, + "durations": { + "content_s": 0.0, + "discovery_s": 7.4, + "processing_s": 6.1, + "total_s": 6.1 + }, + "errors": 0, + "files": 20000, + "files_per_s": 3278.688524590164, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "d209e68e-f366-44cb-8249-d6fecc68e6d8", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_medium" + ], + "recipe_name": "shape_medium", + "timestamp_utc": "2025-08-10T09:46:36.101659+00:00" + }, + "scenario": "aggregation", + "total_gb": 375.63 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_medium-content_identification-ssd.json b/core-new/benchmarks/results/shape_medium-content_identification-ssd.json new file mode 100644 index 000000000..adaa98a52 --- /dev/null +++ b/core-new/benchmarks/results/shape_medium-content_identification-ssd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 1847, + "dirs_per_s": 6.948833709556057, + "durations": { + "content_s": 265.8, + "discovery_s": 273.4, + "processing_s": 272.1, + "total_s": 265.8 + }, + "errors": 0, + "files": 20000, + "files_per_s": 75.24454477050413, + "meta": { + "hardware_label": "Internal SSD (Macintosh HD)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "62872b39-d91b-4195-89e5-d63986c516ea", + "location_paths": [ + "/Users/jamespine/Projects/spacedrive/core-new/benchdata/shape_medium" + ], + "recipe_name": "shape_medium", + "timestamp_utc": "2025-08-10T09:40:28.247578+00:00" + }, + "scenario": "content-identification", + "total_gb": 375.63 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_medium-indexing_discovery-hdd.json b/core-new/benchmarks/results/shape_medium-indexing_discovery-hdd.json new file mode 100644 index 000000000..35a4d854c --- /dev/null +++ b/core-new/benchmarks/results/shape_medium-indexing_discovery-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 1847, + "dirs_per_s": 81.3, + "durations": { + "content_s": 0.0, + "discovery_s": 22.7, + "processing_s": 6.5, + "total_s": 22.71 + }, + "errors": 0, + "files": 20000, + "files_per_s": 880.9, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "0b40d364-b963-436a-88fd-5f9f2ba9de3b", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_medium" + ], + "recipe_name": "shape_medium", + "timestamp_utc": "2025-08-10T09:43:15.290493+00:00" + }, + "scenario": "indexing-discovery", + "total_gb": 375.63 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_small-aggregation-hdd.json b/core-new/benchmarks/results/shape_small-aggregation-hdd.json new file mode 100644 index 000000000..1742cf187 --- /dev/null +++ b/core-new/benchmarks/results/shape_small-aggregation-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 72, + "dirs_per_s": 60.0, + "durations": { + "content_s": 0.0, + "discovery_s": 1.7, + "processing_s": 1.2, + "total_s": 1.2 + }, + "errors": 0, + "files": 5000, + "files_per_s": 4166.666666666667, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "acc2002e-ac20-4e83-a772-e8e15a46abe7", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_small" + ], + "recipe_name": "shape_small", + "timestamp_utc": "2025-08-10T09:46:40.825505+00:00" + }, + "scenario": "aggregation", + "total_gb": 8.21 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_small-content_identification-ssd.json b/core-new/benchmarks/results/shape_small-content_identification-ssd.json new file mode 100644 index 000000000..82301139a --- /dev/null +++ b/core-new/benchmarks/results/shape_small-content_identification-ssd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 72, + "dirs_per_s": 1.0480349344978166, + "durations": { + "content_s": 68.7, + "discovery_s": 70.2, + "processing_s": 69.9, + "total_s": 68.7 + }, + "errors": 0, + "files": 5000, + "files_per_s": 72.78020378457059, + "meta": { + "hardware_label": "Internal SSD (Macintosh HD)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "cfe4988b-bfa4-4b9f-9632-4bc02d9738c7", + "location_paths": [ + "/Users/jamespine/Projects/spacedrive/core-new/benchdata/shape_small" + ], + "recipe_name": "shape_small", + "timestamp_utc": "2025-08-10T09:41:41.304584+00:00" + }, + "scenario": "content-identification", + "total_gb": 8.21 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/shape_small-indexing_discovery-hdd.json b/core-new/benchmarks/results/shape_small-indexing_discovery-hdd.json new file mode 100644 index 000000000..869725133 --- /dev/null +++ b/core-new/benchmarks/results/shape_small-indexing_discovery-hdd.json @@ -0,0 +1,33 @@ +{ + "runs": [ + { + "dirs": 72, + "dirs_per_s": 26.3, + "durations": { + "content_s": 0.0, + "discovery_s": 2.7, + "processing_s": 1.1, + "total_s": 2.73 + }, + "errors": 0, + "files": 5000, + "files_per_s": 1828.2, + "meta": { + "hardware_label": "External HDD (Seagate)", + "host": { + "cpu_model": "Apple M3 Max", + "cpu_physical_cores": 16, + "memory_total_gb": 48 + }, + "id": "edb6828c-3605-4dde-9147-e97d2546a9b3", + "location_paths": [ + "/Volumes/Seagate/benchdata/shape_small" + ], + "recipe_name": "shape_small", + "timestamp_utc": "2025-08-10T09:43:23.958382+00:00" + }, + "scenario": "indexing-discovery", + "total_gb": 8.21 + } + ] +} \ No newline at end of file diff --git a/core-new/benchmarks/results/whitepaper_metrics.csv b/core-new/benchmarks/results/whitepaper_metrics.csv index 1ffa9271e..380df3845 100644 --- a/core-new/benchmarks/results/whitepaper_metrics.csv +++ b/core-new/benchmarks/results/whitepaper_metrics.csv @@ -1,8 +1,10 @@ -Phase,Hardware,Files_per_s,GB_per_s,Files,Dirs,GB,Errors,Recipe -Discovery,Internal SSD (Macintosh HD),1662.5,197.55,100000,16507,11882.38,0,shape_large -Discovery,Internal SSD (Macintosh HD),2720.6,51.11,20000,1847,375.63,0,shape_medium -Discovery,Internal SSD (Macintosh HD),3588.6,5.91,5000,72,8.21,0,shape_small -Processing,Internal SSD (Macintosh HD),1890.4,224.62,100000,16507,11882.38,0,shape_large -Processing,Internal SSD (Macintosh HD),3278.7,61.58,20000,1847,375.63,0,shape_medium -Processing,Internal SSD (Macintosh HD),4166.7,6.84,5000,72,8.21,0,shape_small -Content Identification,Internal SSD (Macintosh HD),74.6,8.86,100000,16507,11882.38,0,shape_large +Phase,Hardware,Files_per_s,GB_per_s,Files,Dirs,GB,Errors,Recipe,Duration_s +Discovery,Internal SSD (Macintosh HD),1662.5,197.38,100000,16507,11882.38,0,shape_large,60.2 +Discovery,Internal SSD (Macintosh HD),2720.6,50.76,20000,1847,375.63,0,shape_medium,7.4 +Discovery,Internal SSD (Macintosh HD),3588.6,5.86,5000,72,8.21,0,shape_small,1.4 +Processing,Internal SSD (Macintosh HD),1890.4,224.62,100000,16507,11882.38,0,shape_large,52.9 +Processing,Internal SSD (Macintosh HD),3278.7,61.58,20000,1847,375.63,0,shape_medium,6.1 +Processing,Internal SSD (Macintosh HD),4166.7,6.84,5000,72,8.21,0,shape_small,1.2 +Content Identification,Internal SSD (Macintosh HD),74.6,8.86,100000,16507,11882.38,0,shape_large,1340.8 +Content Identification,Internal SSD (Macintosh HD),75.2,1.41,20000,1847,375.63,0,shape_medium,265.8 +Content Identification,Internal SSD (Macintosh HD),72.8,0.12,5000,72,8.21,0,shape_small,68.7 diff --git a/core-new/benchmarks/src/reporting/csv.rs b/core-new/benchmarks/src/reporting/csv.rs index 240ec76e2..dd9856d87 100644 --- a/core-new/benchmarks/src/reporting/csv.rs +++ b/core-new/benchmarks/src/reporting/csv.rs @@ -36,7 +36,7 @@ impl Reporter for CsvReporter { fn render(&self, runs: &[BenchmarkRun], dest: &Path) -> Result<()> { // Collect all data rows first so we can sort them - let mut data_rows: Vec<(String, String, f64, f64, u64, u64, f64, u64, String)> = Vec::new(); + let mut data_rows: Vec<(String, String, f64, f64, u64, u64, f64, u64, String, f64)> = Vec::new(); // Process each run individually for run in runs { @@ -110,13 +110,17 @@ impl Reporter for CsvReporter { .clone() .unwrap_or_else(|| "Unknown".to_string()); - // Calculate GB/s - let gb_per_s = if let Some(duration) = durations.total_s { - if duration > 0.0 { - total_gb / duration - } else { - 0.0 - } + // Get phase-specific duration or fall back to total + let phase_duration = match scenario { + "indexing_discovery" => durations.discovery_s.unwrap_or(durations.total_s.unwrap_or(0.0)), + "aggregation" => durations.processing_s.unwrap_or(durations.total_s.unwrap_or(0.0)), + "content_identification" => durations.content_s.unwrap_or(durations.total_s.unwrap_or(0.0)), + _ => durations.total_s.unwrap_or(0.0), + }; + + // Calculate GB/s using phase-specific duration + let gb_per_s = if phase_duration > 0.0 { + total_gb / phase_duration } else { 0.0 }; @@ -131,6 +135,7 @@ impl Reporter for CsvReporter { total_gb, errors, meta.recipe_name.clone(), + phase_duration, )); } @@ -144,14 +149,14 @@ impl Reporter for CsvReporter { // Build CSV output let mut rows = - vec!["Phase,Hardware,Files_per_s,GB_per_s,Files,Dirs,GB,Errors,Recipe".to_string()]; + vec!["Phase,Hardware,Files_per_s,GB_per_s,Files,Dirs,GB,Errors,Recipe,Duration_s".to_string()]; - for (phase, hardware, files_per_s, gb_per_s, files, dirs, total_gb, errors, recipe) in + for (phase, hardware, files_per_s, gb_per_s, files, dirs, total_gb, errors, recipe, duration) in data_rows { rows.push(format!( - "{},{},{:.1},{:.2},{},{},{:.2},{},{}", - phase, hardware, files_per_s, gb_per_s, files, dirs, total_gb, errors, recipe + "{},{},{:.1},{:.2},{},{},{:.2},{},{},{:.1}", + phase, hardware, files_per_s, gb_per_s, files, dirs, total_gb, errors, recipe, duration )); } diff --git a/core-new/whitepaper/spacedrive.pdf b/core-new/whitepaper/spacedrive.pdf index 7743b149228ea89657cf0081d12008091034dc8a..0b2c0dfa86f490209c0d7e87d1fb6101836ee570 100644 GIT binary patch delta 38868 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 diff --git a/core-new/whitepaper/spacedrive.tex b/core-new/whitepaper/spacedrive.tex index 8377c90db..ee8e23722 100644 --- a/core-new/whitepaper/spacedrive.tex +++ b/core-new/whitepaper/spacedrive.tex @@ -2101,13 +2101,13 @@ Systematic performance testing demonstrates Spacedrive's efficiency across criti \label{tab:performance} \begin{tabular}{llrrrrrrl} \toprule - \textbf{Phase} & \textbf{Hardware} & \textbf{Files/s} & \textbf{GB/s} & \textbf{Files} & \textbf{Dirs} & \textbf{GB} & \textbf{Recipe} \\ + \textbf{Phase} & \textbf{Hardware} & \textbf{Files/s} & \textbf{Duration/s} & \textbf{GB/s} & \textbf{Files} & \textbf{Dirs} & \textbf{GB} & \textbf{Recipe} \\ \midrule \multicolumn{8}{l}{\textit{Indexing}} \\ \csvreader[ late after line=\\ - ]{../benchmarks/results/whitepaper_metrics.csv}{Phase=\Phase,Hardware=\Hardware,Files_per_s=\Fps,GB_per_s=\Gbps,Files=\Files,Dirs=\Dirs,GB=\Gb,Recipe=\Recipe}{% - \Phase & \Hardware & \num{\Fps} & \num{\Gbps} & \num{\Files} & \num{\Dirs} & \num{\Gb} & \url{\Recipe}} + ]{../benchmarks/results/whitepaper_metrics.csv}{Phase=\Phase,Hardware=\Hardware,Files_per_s=\Fps,Duration_s=\Duration,GB_per_s=\Gbps,Files=\Files,Dirs=\Dirs,GB=\Gb,Recipe=\Recipe}{% + \Phase & \Hardware & \num{\Fps} & \num{\Duration} & \num{\Gbps} & \num{\Files} & \num{\Dirs} & \num{\Gb} & \url{\Recipe}} \bottomrule \end{tabular} \end{table*}