From 701d28d2d6ee24b1a27890990b8a2a049d72081f Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 26 Jan 2023 10:56:05 -0500 Subject: [PATCH] Faster File.ReadAll --- BeefLibs/corlib/src/IO/File.bf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/BeefLibs/corlib/src/IO/File.bf b/BeefLibs/corlib/src/IO/File.bf index 2926569c..a956a09d 100644 --- a/BeefLibs/corlib/src/IO/File.bf +++ b/BeefLibs/corlib/src/IO/File.bf @@ -30,15 +30,18 @@ namespace System.IO { public static Result ReadAll(StringView path, List outData) { - FileStream fs = scope FileStream(); + UnbufferedFileStream fs = scope UnbufferedFileStream(); var result = fs.Open(path, .Open, .Read, .ReadWrite); if (result case .Err(let err)) return .Err(.OpenError(err)); + int64 fileSize = fs.Length; + outData.Reserve(fileSize); + while (true) { - uint8[4096] buffer; - switch (fs.TryRead(.(&buffer, 4096))) + uint8[8192] buffer; + switch (fs.TryRead(.(&buffer, 8192))) { case .Ok(let bytes): if (bytes == 0)