File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ fn main ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
2+ let source = std:: env:: args ( ) . nth ( 1 ) . expect ( "missing source" ) ;
3+ println ! ( "Parsing data from {} ..." , source) ;
4+
5+ let file = std:: fs:: File :: open ( & source) ?;
6+ let mut file = std:: io:: BufReader :: new ( file) ;
7+
8+ let iter = dasl:: drisl:: de:: iter_from_reader :: < dasl:: drisl:: Value , _ > ( & mut file) ;
9+ let now = std:: time:: Instant :: now ( ) ;
10+ let mut count = 0 ;
11+ for ( i, el) in iter. enumerate ( ) {
12+ let el = el?;
13+ if i == 0 {
14+ println ! ( "{:?}" , el) ;
15+ }
16+ if i % 100 == 0 {
17+ print ! ( "." ) ;
18+ }
19+ count += 1 ;
20+ }
21+ println ! ( "\n " ) ;
22+
23+ let done = now. elapsed ( ) ;
24+
25+ let meta = std:: fs:: metadata ( & source) ?;
26+ let mbs = meta. len ( ) as f64 / done. as_secs_f64 ( ) / 1024. / 1024. ;
27+ let values_per_sec = count as f64 / done. as_secs_f64 ( ) ;
28+
29+ println ! (
30+ "File '{}' ({:.01}MiB)\n Parsed {} values in {}ms\n {:.02} Values/s\n {:.02} MiB/s" ,
31+ source,
32+ meta. len( ) as f64 / 1024. / 1024. ,
33+ count,
34+ done. as_millis( ) ,
35+ values_per_sec,
36+ mbs,
37+ ) ;
38+ Ok ( ( ) )
39+ }
You can’t perform that action at this time.
0 commit comments