| Index: src/profiler/profile-generator.cc
|
| diff --git a/src/profiler/profile-generator.cc b/src/profiler/profile-generator.cc
|
| index a670729b794961da40ef3668a326cb11cf851f90..69a10282becbc21b057fe8f29da516a555e81905 100644
|
| --- a/src/profiler/profile-generator.cc
|
| +++ b/src/profiler/profile-generator.cc
|
| @@ -412,7 +412,7 @@ CpuProfile::CpuProfile(CpuProfiler* profiler, const char* title,
|
| value->SetDouble("startTime",
|
| (start_time_ - base::TimeTicks()).InMicroseconds());
|
| TRACE_EVENT_SAMPLE_WITH_ID1(TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler"),
|
| - "CpuProfile", this, "data", std::move(value));
|
| + "Profile", this, "data", std::move(value));
|
| }
|
|
|
| void CpuProfile::AddPath(base::TimeTicks timestamp,
|
| @@ -466,22 +466,27 @@ void CpuProfile::StreamPendingTraceEvents() {
|
| if (pending_nodes.empty() && !samples_.length()) return;
|
| auto value = TracedValue::Create();
|
|
|
| - if (!pending_nodes.empty()) {
|
| - value->BeginArray("nodes");
|
| - for (auto node : pending_nodes) {
|
| - value->BeginDictionary();
|
| - BuildNodeValue(node, value.get());
|
| - value->EndDictionary();
|
| + if (!pending_nodes.empty() || streaming_next_sample_ != samples_.length()) {
|
| + value->BeginDictionary("cpuProfile");
|
| + if (!pending_nodes.empty()) {
|
| + value->BeginArray("nodes");
|
| + for (auto node : pending_nodes) {
|
| + value->BeginDictionary();
|
| + BuildNodeValue(node, value.get());
|
| + value->EndDictionary();
|
| + }
|
| + value->EndArray();
|
| }
|
| - value->EndArray();
|
| + if (streaming_next_sample_ != samples_.length()) {
|
| + value->BeginArray("samples");
|
| + for (int i = streaming_next_sample_; i < samples_.length(); ++i) {
|
| + value->AppendInteger(samples_[i]->id());
|
| + }
|
| + value->EndArray();
|
| + }
|
| + value->EndDictionary();
|
| }
|
| -
|
| if (streaming_next_sample_ != samples_.length()) {
|
| - value->BeginArray("samples");
|
| - for (int i = streaming_next_sample_; i < samples_.length(); ++i) {
|
| - value->AppendInteger(samples_[i]->id());
|
| - }
|
| - value->EndArray();
|
| value->BeginArray("timeDeltas");
|
| base::TimeTicks lastTimestamp =
|
| streaming_next_sample_ ? timestamps_[streaming_next_sample_ - 1]
|
| @@ -497,8 +502,7 @@ void CpuProfile::StreamPendingTraceEvents() {
|
| }
|
|
|
| TRACE_EVENT_SAMPLE_WITH_ID1(TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler"),
|
| - "CpuProfileChunk", this, "data",
|
| - std::move(value));
|
| + "ProfileChunk", this, "data", std::move(value));
|
| }
|
|
|
| void CpuProfile::FinishProfile() {
|
| @@ -507,8 +511,7 @@ void CpuProfile::FinishProfile() {
|
| auto value = TracedValue::Create();
|
| value->SetDouble("endTime", (end_time_ - base::TimeTicks()).InMicroseconds());
|
| TRACE_EVENT_SAMPLE_WITH_ID1(TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler"),
|
| - "CpuProfileChunk", this, "data",
|
| - std::move(value));
|
| + "ProfileChunk", this, "data", std::move(value));
|
| }
|
|
|
| void CpuProfile::Print() {
|
|
|