@@ -281,41 +281,55 @@ impl Metrics for LargeScene {
281281 let _ = reader. read_line ( & mut tmp) ;
282282 let _ = reader. read_line ( & mut tmp) ;
283283 let mut rdr = csv:: ReaderBuilder :: new ( ) . from_reader ( reader) ;
284- let frame_times = rdr
284+ let ( frame_times, cpu, gpu, vram, ram) : (
285+ Vec < f32 > ,
286+ Vec < f32 > ,
287+ Vec < f32 > ,
288+ Vec < f32 > ,
289+ Vec < f32 > ,
290+ ) = rdr
285291 . records ( )
286292 . flatten ( )
287- . flat_map ( |record| record. get ( 1 ) . unwrap ( ) . parse :: < f32 > ( ) )
288- . collect :: < Vec < _ > > ( ) ;
289-
290- if !frame_times. len ( ) > 3 {
291- results. insert (
292- format ! ( "{key}.frame_time.mean" ) ,
293- ( statistical:: mean ( & frame_times) * 1000.0 ) as u64 ,
294- ) ;
295- results. insert (
296- format ! ( "{key}.frame_time.median" ) ,
297- ( statistical:: median ( & frame_times) * 1000.0 ) as u64 ,
298- ) ;
299- results. insert (
300- format ! ( "{key}.frame_time.min" ) ,
301- frame_times
302- . iter ( )
303- . map ( |d| ( d * 1000.0 ) as u64 )
304- . min ( )
305- . unwrap ( ) ,
306- ) ;
307- results. insert (
308- format ! ( "{key}.frame_time.max" ) ,
309- frame_times
310- . iter ( )
311- . map ( |d| ( d * 1000.0 ) as u64 )
312- . max ( )
313- . unwrap ( ) ,
314- ) ;
315- results. insert (
316- format ! ( "{key}.frame_time.std_dev" ) ,
317- ( statistical:: standard_deviation ( & frame_times, None ) * 1000.0 ) as u64 ,
318- ) ;
293+ . map ( |record| {
294+ (
295+ record. get ( 1 ) . unwrap ( ) . parse :: < f32 > ( ) . unwrap_or_default ( ) ,
296+ record. get ( 2 ) . unwrap ( ) . parse :: < f32 > ( ) . unwrap_or_default ( ) ,
297+ record. get ( 3 ) . unwrap ( ) . parse :: < f32 > ( ) . unwrap_or_default ( ) ,
298+ record. get ( 8 ) . unwrap ( ) . parse :: < f32 > ( ) . unwrap_or_default ( ) ,
299+ record. get ( 10 ) . unwrap ( ) . parse :: < f32 > ( ) . unwrap_or_default ( ) ,
300+ )
301+ } )
302+ . collect ( ) ;
303+
304+ for ( values, name) in [
305+ ( frame_times, "frame_time" ) ,
306+ ( cpu, "cpu_load" ) ,
307+ ( gpu, "gpu_load" ) ,
308+ ( ram, "ram_used" ) ,
309+ ( vram, "vram_used" ) ,
310+ ] {
311+ if values. len ( ) > 3 {
312+ results. insert (
313+ format ! ( "{key}.{name}.mean" ) ,
314+ ( statistical:: mean ( & values) * 1000.0 ) as u64 ,
315+ ) ;
316+ results. insert (
317+ format ! ( "{key}.{name}.median" ) ,
318+ ( statistical:: median ( & values) * 1000.0 ) as u64 ,
319+ ) ;
320+ results. insert (
321+ format ! ( "{key}.{name}.min" ) ,
322+ values. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . min ( ) . unwrap ( ) ,
323+ ) ;
324+ results. insert (
325+ format ! ( "{key}.{name}.max" ) ,
326+ values. iter ( ) . map ( |d| ( d * 1000.0 ) as u64 ) . max ( ) . unwrap ( ) ,
327+ ) ;
328+ results. insert (
329+ format ! ( "{key}.{name}.std_dev" ) ,
330+ ( statistical:: standard_deviation ( & values, None ) * 1000.0 ) as u64 ,
331+ ) ;
332+ }
319333 }
320334 }
321335
0 commit comments