OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/task_profiler/task_profiler_data_serializer.h" | 5 #include "chrome/browser/task_profiler/task_profiler_data_serializer.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 dictionary->SetInteger("count", death_data.count); | 61 dictionary->SetInteger("count", death_data.count); |
62 dictionary->SetInteger("run_ms", death_data.run_duration_sum); | 62 dictionary->SetInteger("run_ms", death_data.run_duration_sum); |
63 dictionary->SetInteger("run_ms_max", death_data.run_duration_max); | 63 dictionary->SetInteger("run_ms_max", death_data.run_duration_max); |
64 dictionary->SetInteger("run_ms_sample", death_data.run_duration_sample); | 64 dictionary->SetInteger("run_ms_sample", death_data.run_duration_sample); |
65 dictionary->SetInteger("queue_ms", death_data.queue_duration_sum); | 65 dictionary->SetInteger("queue_ms", death_data.queue_duration_sum); |
66 dictionary->SetInteger("queue_ms_max", death_data.queue_duration_max); | 66 dictionary->SetInteger("queue_ms_max", death_data.queue_duration_max); |
67 dictionary->SetInteger("queue_ms_sample", death_data.queue_duration_sample); | 67 dictionary->SetInteger("queue_ms_sample", death_data.queue_duration_sample); |
68 | 68 |
69 dictionary->SetInteger("alloc_ops", death_data.alloc_ops); | 69 dictionary->SetInteger("alloc_ops", death_data.alloc_ops); |
70 dictionary->SetInteger("free_ops", death_data.free_ops); | 70 dictionary->SetInteger("free_ops", death_data.free_ops); |
71 dictionary->SetInteger("allocated_bytes", death_data.allocated_bytes); | 71 // The byte counts are 64 bit integers, pass them through as doubles, as |
72 dictionary->SetInteger("freed_bytes", death_data.freed_bytes); | 72 // integer values truncate to 32 bits. |
73 dictionary->SetInteger("alloc_overhead_bytes", | 73 dictionary->SetDouble("allocated_bytes", death_data.allocated_bytes); |
74 death_data.alloc_overhead_bytes); | 74 dictionary->SetDouble("freed_bytes", death_data.freed_bytes); |
| 75 dictionary->SetDouble("alloc_overhead_bytes", |
| 76 death_data.alloc_overhead_bytes); |
75 dictionary->SetInteger("max_allocated_bytes", death_data.max_allocated_bytes); | 77 dictionary->SetInteger("max_allocated_bytes", death_data.max_allocated_bytes); |
76 } | 78 } |
77 | 79 |
78 // Re-serializes the |snapshot| into |dictionary|. | 80 // Re-serializes the |snapshot| into |dictionary|. |
79 void TaskSnapshotToValue(const TaskSnapshot& snapshot, | 81 void TaskSnapshotToValue(const TaskSnapshot& snapshot, |
80 base::DictionaryValue* dictionary) { | 82 base::DictionaryValue* dictionary) { |
81 BirthOnThreadSnapshotToValue(snapshot.birth, "birth", dictionary); | 83 BirthOnThreadSnapshotToValue(snapshot.birth, "birth", dictionary); |
82 | 84 |
83 std::unique_ptr<base::DictionaryValue> death_data(new base::DictionaryValue); | 85 std::unique_ptr<base::DictionaryValue> death_data(new base::DictionaryValue); |
84 DeathDataSnapshotToValue(snapshot.death_data, death_data.get()); | 86 DeathDataSnapshotToValue(snapshot.death_data, death_data.get()); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 tasks_list->Append(std::move(snapshot)); | 141 tasks_list->Append(std::move(snapshot)); |
140 } | 142 } |
141 dictionary->Set("list", tasks_list.release()); | 143 dictionary->Set("list", tasks_list.release()); |
142 | 144 |
143 dictionary->SetInteger("process_id", process_id); | 145 dictionary->SetInteger("process_id", process_id); |
144 dictionary->SetString("process_type", content::GetProcessTypeNameInEnglish( | 146 dictionary->SetString("process_type", content::GetProcessTypeNameInEnglish( |
145 AsChromeProcessType(process_type))); | 147 AsChromeProcessType(process_type))); |
146 } | 148 } |
147 | 149 |
148 } // namespace task_profiler | 150 } // namespace task_profiler |
OLD | NEW |