diff options
| author | Dan Engelbrecht <[email protected]> | 2022-04-01 08:41:51 +0200 |
|---|---|---|
| committer | Dan Engelbrecht <[email protected]> | 2022-04-01 09:07:21 +0200 |
| commit | ac573e90a5698c64451a99beb1a14d00540aa835 (patch) | |
| tree | f246b21daef1b8ce99abe275cbda96a481531467 /zenstore/compactcas.cpp | |
| parent | call Initialize before replay on caslog (diff) | |
| download | zen-ac573e90a5698c64451a99beb1a14d00540aa835.tar.xz zen-ac573e90a5698c64451a99beb1a14d00540aa835.zip | |
reserve space for log entries before replay
Diffstat (limited to 'zenstore/compactcas.cpp')
| -rw-r--r-- | zenstore/compactcas.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/zenstore/compactcas.cpp b/zenstore/compactcas.cpp index 1dd1a3906..1ade002d8 100644 --- a/zenstore/compactcas.cpp +++ b/zenstore/compactcas.cpp @@ -282,6 +282,7 @@ namespace { CasLog.Open(SlogPath, CasLogFile::EMode::kRead); if (CasLog.Initialize()) { + Entries.reserve(CasLog.GetLogCount()); CasLog.Replay([&](const CasDiskIndexEntry& Record) { Entries.push_back(Record); }); } } @@ -359,6 +360,7 @@ namespace { }); if (LegacyCasLog.Initialize()) { + LegacyDiskIndex.reserve(LegacyCasLog.GetLogCount()); LegacyCasLog.Replay([&](const LegacyCasDiskIndexEntry& Record) { std::string InvalidEntryReason; if (Record.Flags & LegacyCasDiskIndexEntry::kTombstone) @@ -1410,9 +1412,11 @@ CasContainerStrategy::MakeIndexSnapshot() { TCasLogFile<CasDiskIndexEntry> OldCasLog; OldCasLog.Open(STmplogPath, CasLogFile::EMode::kRead); + Records.reserve(OldCasLog.GetLogCount()); OldCasLog.Replay([&](const CasDiskIndexEntry& Record) { Records.push_back(Record); }); } { + Records.reserve(Records.size() + m_CasLog.GetLogCount()); m_CasLog.Replay([&](const CasDiskIndexEntry& Record) { Records.push_back(Record); }); } @@ -2316,6 +2320,7 @@ TEST_CASE("compactcas.legacyconversion") { TCasLogFile<CasDiskIndexEntry> CasLog; CasLog.Open(SlogPath, CasLogFile::EMode::kRead); + LogEntries.reserve(CasLog.GetLogCount()); CasLog.Replay([&](const CasDiskIndexEntry& Record) { LogEntries.push_back(Record); }); } TCasLogFile<LegacyCasDiskIndexEntry> LegacyCasLog; |