From 4f4cde237983cfe9d9d2ebc186cb283b7262ed4a Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 23 May 2021 23:17:26 +0200 Subject: [PATCH] LibDebug: Pre-allocate capacity for the LineProgram::LineInfo vector This shaves another ~15% off of "bt 12" on my machine :^) --- Userland/Libraries/LibDebug/DebugInfo.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibDebug/DebugInfo.cpp b/Userland/Libraries/LibDebug/DebugInfo.cpp index 4af2ea5c097..8a943a10e04 100644 --- a/Userland/Libraries/LibDebug/DebugInfo.cpp +++ b/Userland/Libraries/LibDebug/DebugInfo.cpp @@ -103,6 +103,8 @@ void DebugInfo::prepare_lines() return file_path; }; + m_sorted_lines.ensure_capacity(all_lines.size()); + for (auto const& line_info : all_lines) { auto it = memoized_full_paths.find(line_info.file); if (it == memoized_full_paths.end()) { @@ -111,8 +113,9 @@ void DebugInfo::prepare_lines() } if (!it->value.has_value()) continue; - m_sorted_lines.append({ line_info.address, it->value.value(), line_info.line }); + m_sorted_lines.unchecked_append({ line_info.address, it->value.value(), line_info.line }); } + quick_sort(m_sorted_lines, [](auto& a, auto& b) { return a.address < b.address; });