File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed 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