瀏覽代碼

LibDebug: Avoid creating the String("serenity/") a bazillion times

We were creating and destroying this string twice for every LineInfo.
That's a lot of malloc() and free() during UE startup.
Andreas Kling 4 年之前
父節點
當前提交
4eb3cf68b7
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      Libraries/LibDebug/DebugInfo.cpp

+ 4 - 2
Libraries/LibDebug/DebugInfo.cpp

@@ -115,12 +115,14 @@ void DebugInfo::prepare_lines()
         all_lines.append(program.lines());
         all_lines.append(program.lines());
     }
     }
 
 
+    String serenity_slash("serenity/");
+
     for (auto& line_info : all_lines) {
     for (auto& line_info : all_lines) {
         String file_path = line_info.file;
         String file_path = line_info.file;
         if (file_path.contains("Toolchain/") || file_path.contains("libgcc"))
         if (file_path.contains("Toolchain/") || file_path.contains("libgcc"))
             continue;
             continue;
-        if (file_path.contains("serenity/")) {
-            auto start_index = file_path.index_of("serenity/").value() + String("serenity/").length();
+        if (file_path.contains(serenity_slash)) {
+            auto start_index = file_path.index_of(serenity_slash).value() + serenity_slash.length();
             file_path = file_path.substring(start_index, file_path.length() - start_index);
             file_path = file_path.substring(start_index, file_path.length() - start_index);
         }
         }
         m_sorted_lines.append({ line_info.address, file_path, line_info.line });
         m_sorted_lines.append({ line_info.address, file_path, line_info.line });