@@ -6,8 +6,8 @@ use bench_vortex::metrics::MetricsSetExt;
66use bench_vortex:: public_bi:: { FileType , PBI_DATASETS , PBIDataset } ;
77use bench_vortex:: utils:: constants:: STORAGE_NVME ;
88use bench_vortex:: utils:: new_tokio_runtime;
9- use bench_vortex:: { Engine , Format , Target , default_env_filter, df} ;
10- use clap:: Parser ;
9+ use bench_vortex:: { Format , Target , default_env_filter, df} ;
10+ use clap:: { Parser , value_parser } ;
1111use indicatif:: ProgressBar ;
1212use itertools:: Itertools ;
1313use tracing:: info_span;
@@ -22,10 +22,20 @@ struct Args {
2222 iterations : usize ,
2323 #[ arg( short, long) ]
2424 threads : Option < usize > ,
25- #[ arg( long, value_delimiter = ',' , value_enum, default_values_t = vec![ Format :: Parquet , Format :: OnDiskVortex ] ) ]
26- formats : Vec < Format > ,
25+ #[ arg( long, value_delimiter = ',' , value_parser = value_parser!( Target ) ,
26+ default_values = vec![
27+ "datafusion:parquet" ,
28+ "datafusion:vortex" ,
29+ "duckdb:parquet" ,
30+ "duckdb:vortex" ,
31+ "duckdb:duckdb"
32+ ]
33+ ) ]
34+ targets : Vec < Target > ,
2735 #[ arg( short, long) ]
2836 verbose : bool ,
37+ #[ arg( long) ]
38+ display_metrics : bool ,
2939 #[ arg( long, default_value_t, value_enum) ]
3040 display_format : DisplayFormat ,
3141 #[ arg( long, default_value_t = false ) ]
@@ -76,12 +86,6 @@ fn main() -> anyhow::Result<()> {
7686
7787 let runtime = new_tokio_runtime ( args. threads ) ;
7888
79- let targets = args
80- . formats
81- . iter ( )
82- . map ( |f| Target :: new ( Engine :: DataFusion , * f) )
83- . collect_vec ( ) ;
84-
8589 let pbi_dataset = PBI_DATASETS . get ( args. dataset ) ;
8690 let queries = match args. queries . clone ( ) {
8791 None => pbi_dataset. queries ( ) ?,
@@ -92,7 +96,7 @@ fn main() -> anyhow::Result<()> {
9296 . collect ( ) ,
9397 } ;
9498
95- let progress_bar = ProgressBar :: new ( ( queries. len ( ) * args. formats . len ( ) ) as u64 ) ;
99+ let progress_bar = ProgressBar :: new ( ( queries. len ( ) * args. targets . len ( ) ) as u64 ) ;
96100 let mut all_measurements = Vec :: default ( ) ;
97101 let mut metrics = Vec :: new ( ) ;
98102
@@ -101,7 +105,7 @@ fn main() -> anyhow::Result<()> {
101105 // download csvs, unzip, convert to parquet, and convert that to vortex
102106 runtime. block_on ( dataset. write_as_vortex ( ) ) ;
103107
104- for target in & targets {
108+ for target in & args . targets {
105109 let format = target. format ( ) ;
106110 let session =
107111 df:: get_session_context ( args. emulate_object_store , args. disable_datafusion_cache ) ;
@@ -164,21 +168,23 @@ fn main() -> anyhow::Result<()> {
164168
165169 match args. display_format {
166170 DisplayFormat :: Table => {
167- for ( query, format, metric_sets) in metrics {
168- println ! ( "\n metrics for query={query}, {format}:" ) ;
169- for ( idx, metric_set) in metric_sets. into_iter ( ) . enumerate ( ) {
170- println ! ( "scan[{idx}]:" ) ;
171- for m in metric_set
172- . timestamps_removed ( )
173- . aggregate ( )
174- . sorted_for_display ( )
175- . iter ( )
176- {
177- println ! ( "{}" , m) ;
171+ if args. display_metrics {
172+ for ( query, format, metric_sets) in metrics {
173+ println ! ( "\n metrics for query={query}, {format}:" ) ;
174+ for ( idx, metric_set) in metric_sets. into_iter ( ) . enumerate ( ) {
175+ println ! ( "scan[{idx}]:" ) ;
176+ for m in metric_set
177+ . timestamps_removed ( )
178+ . aggregate ( )
179+ . sorted_for_display ( )
180+ . iter ( )
181+ {
182+ println ! ( "{}" , m) ;
183+ }
178184 }
179185 }
180186 }
181- render_table ( all_measurements, & targets)
187+ render_table ( all_measurements, & args . targets )
182188 }
183189 DisplayFormat :: GhJson => print_measurements_json ( all_measurements) ,
184190 }
0 commit comments