From 30a3d2faad5105f462f3177cff9f32cd702274cc Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Fri, 5 Mar 2021 23:52:10 +0100 Subject: [PATCH] Add timing for entry ordering in walk_inode_order --- src/dwarfs/metadata_v2.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/dwarfs/metadata_v2.cpp b/src/dwarfs/metadata_v2.cpp index dca251d0..e38ab267 100644 --- a/src/dwarfs/metadata_v2.cpp +++ b/src/dwarfs/metadata_v2.cpp @@ -652,15 +652,21 @@ void metadata_::walk_inode_order_impl( std::function const& func) const { std::vector> entries; - walk_tree([&](uint32_t entry_ix, uint32_t parent_ix) { - entries.emplace_back(entry_ix, parent_ix); - }); + { + auto td = LOG_TIMED_DEBUG; - std::sort(entries.begin(), entries.end(), - [this](auto const& a, auto const& b) { - return meta_.entries()[a.first].inode() < - meta_.entries()[b.first].inode(); - }); + walk_tree([&](uint32_t entry_ix, uint32_t parent_ix) { + entries.emplace_back(entry_ix, parent_ix); + }); + + std::sort(entries.begin(), entries.end(), + [this](auto const& a, auto const& b) { + return meta_.entries()[a.first].inode() < + meta_.entries()[b.first].inode(); + }); + + td << "ordered " << entries.size() << " entries by inode"; + } for (auto [entry, parent] : entries) { walk_call(func, entry, parent);