Преглед на файлове

LibCore: Use JsonObject::get_ptr() in CProcessStatisticsReader

This removes a bunch of JsonValue copying from the hot path in thread
statistics fetching.

Also pre-size the thread statistics vector since we know the final size
up front. :^)
Andreas Kling преди 5 години
родител
ревизия
1b2c6e8f41
променени са 1 файла, в които са добавени 2 реда и са изтрити 1 реда
  1. 2 1
      Libraries/LibCore/CProcessStatisticsReader.cpp

+ 2 - 1
Libraries/LibCore/CProcessStatisticsReader.cpp

@@ -44,7 +44,8 @@ HashMap<pid_t, CProcessStatistics> CProcessStatisticsReader::get_all()
         process.amount_purgeable_nonvolatile = process_object.get("amount_purgeable_nonvolatile").to_u32();
         process.icon_id = process_object.get("icon_id").to_int();
 
-        auto thread_array = process_object.get("threads").as_array();
+        auto& thread_array = process_object.get_ptr("threads")->as_array();
+        process.threads.ensure_capacity(thread_array.size());
         thread_array.for_each([&](auto& value) {
             auto& thread_object = value.as_object();
             CThreadStatistics thread;