mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-11 21:35:27 -04:00
Use readv
for a 15% speed increase in dwarfsextract
This commit is contained in:
parent
149c80daf9
commit
6f16454771
@ -150,10 +150,12 @@ int dwarfsextract(int argc, char** argv) {
|
||||
auto do_archive = [&](::archive_entry* ae, entry_view entry) {
|
||||
check_result(::archive_write_header(a, ae));
|
||||
if (auto size = ::archive_entry_size(ae); size > 0) {
|
||||
std::vector<char> buf(size);
|
||||
int fh = fs.open(entry);
|
||||
fs.read(fh, buf.data(), buf.size());
|
||||
check_result(::archive_write_data(a, buf.data(), buf.size()));
|
||||
iovec_read_buf irb;
|
||||
fs.readv(fh, irb, size, 0);
|
||||
for (auto const& iov : irb.buf) {
|
||||
check_result(::archive_write_data(a, iov.iov_base, iov.iov_len));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user