letmut bytes = vec![0u8; entry_size]; for i in0..num_entries { let name = format!("random{}.dat", i);
zip.start_file(name, options)?;
getrandom(&mut bytes).unwrap();
zip.write_all(&bytes)?;
}
let buf = zip.finish()?.into_inner(); let len = buf.len();
fn merge_archive_stored(bench: &mut Bencher) { let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap();
bench.bytes = len as u64;
bench.iter(|| { let buf = Cursor::new(Vec::new()); let zip = ZipWriter::new(buf); let zip = perform_merge(src.clone(), zip).unwrap(); let buf = zip.finish().unwrap().into_inner();
assert_eq!(buf.len(), len);
});
}
#[cfg(feature = "_deflate-any")] fn merge_archive_compressed(bench: &mut Bencher) { let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Deflated); let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap();
bench.bytes = len as u64;
bench.iter(|| { let buf = Cursor::new(Vec::new()); let zip = ZipWriter::new(buf); let zip = perform_merge(src.clone(), zip).unwrap(); let buf = zip.finish().unwrap().into_inner();
assert_eq!(buf.len(), len);
});
}
fn merge_archive_raw_copy_file_stored(bench: &mut Bencher) { let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Stored); let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap();
bench.bytes = len as u64;
bench.iter(|| { let buf = Cursor::new(Vec::new()); let zip = ZipWriter::new(buf); let zip = perform_raw_copy_file(src.clone(), zip).unwrap(); let buf = zip.finish().unwrap().into_inner();
assert_eq!(buf.len(), len);
});
}
#[cfg(feature = "_deflate-any")] fn merge_archive_raw_copy_file_compressed(bench: &mut Bencher) { let options = SimpleFileOptions::default().compression_method(zip::CompressionMethod::Deflated); let (len, src) = generate_random_archive(NUM_ENTRIES, ENTRY_SIZE, options).unwrap();
bench.bytes = len as u64;
bench.iter(|| { let buf = Cursor::new(Vec::new()); let zip = ZipWriter::new(buf); let zip = perform_raw_copy_file(src.clone(), zip).unwrap(); let buf = zip.finish().unwrap().into_inner();
assert_eq!(buf.len(), len);
});
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.