mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 09:34:59 +00:00
xzcat: Use BufferedFile for reading inputs
This improves the decompression time of `clang-15.0.7.src.tar.xz` from 41 seconds down to about 5 seconds. The reason for this very significant improvement is that LZMA, the underlying compression of XZ, fills its range decompressor one byte at a time, causing a lot of overhead at the syscall barrier.
This commit is contained in:
parent
7000ccf89f
commit
3ec513ecf2
1 changed files with 2 additions and 1 deletions
|
@ -22,7 +22,8 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|||
args_parser.parse(arguments);
|
||||
|
||||
auto file = TRY(Core::File::open_file_or_standard_stream(filename, Core::File::OpenMode::Read));
|
||||
auto stream = TRY(Compress::XzDecompressor::create(move(file)));
|
||||
auto buffered_file = TRY(Core::BufferedFile::create(move(file)));
|
||||
auto stream = TRY(Compress::XzDecompressor::create(move(buffered_file)));
|
||||
|
||||
// Arbitrarily chosen buffer size.
|
||||
Array<u8, 4096> buffer;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue