aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/iobuffer.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-04-26 10:12:03 +0200
committerGitHub Enterprise <[email protected]>2024-04-26 10:12:03 +0200
commitef1b4234c851131cf5a6d249684c14c5c27d2878 (patch)
treeafd972c077b2585c2dc336b79eb1d31d02372295 /src/zencore/iobuffer.cpp
parentfix oplog import during gcv2 (#62) (diff)
downloadzen-ef1b4234c851131cf5a6d249684c14c5c27d2878.tar.xz
zen-ef1b4234c851131cf5a6d249684c14c5c27d2878.zip
use direct file access for large file hash (#63)
- Improvement: Refactor `IoHash::HashBuffer` and `BLAKE3::HashBuffer` to not use memory mapped files. Performs better and saves ~10% of oplog export time on CI
Diffstat (limited to 'src/zencore/iobuffer.cpp')
-rw-r--r--src/zencore/iobuffer.cpp25
1 files changed, 0 insertions, 25 deletions
diff --git a/src/zencore/iobuffer.cpp b/src/zencore/iobuffer.cpp
index 96a893082..e1e8750a1 100644
--- a/src/zencore/iobuffer.cpp
+++ b/src/zencore/iobuffer.cpp
@@ -701,31 +701,6 @@ IoBufferBuilder::MakeFromTemporaryFile(const std::filesystem::path& FileName)
return IoBuffer(IoBuffer::File, Handle, 0, FileSize, /*IsWholeFile*/ true);
}
-IoHash
-HashBuffer(IoBuffer& Buffer)
-{
- size_t BufferSize = Buffer.Size();
- static const size_t BufferingSize = 512 * 1024;
- if (BufferSize >= (BufferingSize + BufferingSize / 2))
- {
- IoBufferFileReference _;
- if (Buffer.GetFileReference(/* out */ _))
- {
- size_t Offset = 0;
- IoHashStream HashStream;
- while (Offset < BufferSize)
- {
- size_t ChunkSize = Min<size_t>(BufferSize - Offset, BufferingSize);
- IoBuffer SubRange(Buffer, Offset, ChunkSize);
- HashStream.Append(SubRange.GetData(), SubRange.GetSize());
- Offset += ChunkSize;
- }
- return HashStream.GetHash();
- }
- }
- return IoHash::HashBuffer(Buffer.Data(), BufferSize);
-}
-
//////////////////////////////////////////////////////////////////////////
#if ZEN_WITH_TESTS