@@ -13,34 +13,43 @@ fn main() {
1313 let op = args. next ( ) . unwrap ( ) ;
1414 let file_path = args. next ( ) . unwrap ( ) ;
1515
16- let file = match fs:: File :: open ( & file_path) {
17- Ok ( file) => file,
18- Err ( err) => {
19- println ! ( "Failed to open file '{}': {}" , file_path, err, ) ;
20- return ;
21- }
22- } ;
23- let file = match unsafe { memmap:: Mmap :: map ( & file) } {
24- Ok ( mmap) => mmap,
25- Err ( err) => {
26- println ! ( "Failed to map file '{}': {}" , file_path, err, ) ;
27- return ;
28- }
29- } ;
30- let archive = match object:: read:: archive:: ArchiveFile :: parse ( & * file) {
31- Ok ( file) => file,
32- Err ( err) => {
33- println ! ( "Failed to parse file '{}': {}" , file_path, err) ;
34- return ;
35- }
36- } ;
37- match op. chars ( ) . next ( ) . unwrap ( ) {
38- 't' => {
39- for member in archive. members ( ) {
40- let member = member. unwrap ( ) ;
41- println ! ( "{}" , String :: from_utf8_lossy( member. name( ) ) ) ;
16+ for _ in 0 ..100_000 {
17+ let file = match fs:: File :: open ( & file_path) {
18+ Ok ( file) => file,
19+ Err ( err) => {
20+ println ! ( "Failed to open file '{}': {}" , file_path, err, ) ;
21+ return ;
22+ }
23+ } ;
24+
25+ /*
26+ let map = match unsafe { memmap::Mmap::map(&file) } {
27+ Ok(mmap) => mmap,
28+ Err(err) => {
29+ println!("Failed to map file '{}': {}", file_path, err,);
30+ return;
31+ }
32+ };
33+ let data = &*map;
34+ */
35+
36+ let cache = object:: ReadCache :: new ( file) ;
37+ let data = & cache;
38+
39+ let archive = match object:: read:: archive:: ArchiveFile :: parse ( data) {
40+ Ok ( data) => data,
41+ Err ( err) => {
42+ println ! ( "Failed to parse file '{}': {}" , file_path, err) ;
43+ return ;
44+ }
45+ } ;
46+ match op. chars ( ) . next ( ) . unwrap ( ) {
47+ 't' => {
48+ for member in archive. members ( ) {
49+ member. unwrap ( ) ;
50+ }
4251 }
52+ op => println ! ( "Invalid operation: {}" , op) ,
4353 }
44- op => println ! ( "Invalid operation: {}" , op) ,
4554 }
4655}
0 commit comments