| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "tools/gn/trace.h" | 5 #include "tools/gn/trace.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 160 if (!done_) { | 160 if (!done_) { |
| 161 done_ = true; | 161 done_ = true; |
| 162 if (trace_log) { | 162 if (trace_log) { |
| 163 item_->set_end(base::TimeTicks::HighResNow()); | 163 item_->set_end(base::TimeTicks::HighResNow()); |
| 164 AddTrace(item_); | 164 AddTrace(item_); |
| 165 } | 165 } |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 | 168 |
| 169 void EnableTracing() { | 169 void EnableTracing() { |
| 170 CHECK(!trace_log); | 170 if (!trace_log) |
| 171 trace_log = new TraceLog; | 171 trace_log = new TraceLog; |
| 172 } | 172 } |
| 173 | 173 |
| 174 void AddTrace(TraceItem* item) { | 174 void AddTrace(TraceItem* item) { |
| 175 trace_log->Add(item); | 175 trace_log->Add(item); |
| 176 } | 176 } |
| 177 | 177 |
| 178 std::string SummarizeTraces() { | 178 std::string SummarizeTraces() { |
| 179 if (!trace_log) | 179 if (!trace_log) |
| 180 return std::string(); | 180 return std::string(); |
| 181 | 181 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 197 break; | 197 break; |
| 198 case TraceItem::TRACE_SCRIPT_EXECUTE: | 198 case TraceItem::TRACE_SCRIPT_EXECUTE: |
| 199 script_execs.push_back(events[i]); | 199 script_execs.push_back(events[i]); |
| 200 break; | 200 break; |
| 201 case TraceItem::TRACE_CHECK_HEADERS: | 201 case TraceItem::TRACE_CHECK_HEADERS: |
| 202 check_headers.push_back(events[i]); | 202 check_headers.push_back(events[i]); |
| 203 break; | 203 break; |
| 204 case TraceItem::TRACE_CHECK_HEADER: | 204 case TraceItem::TRACE_CHECK_HEADER: |
| 205 headers_checked++; | 205 headers_checked++; |
| 206 break; | 206 break; |
| 207 case TraceItem::TRACE_SETUP: |
| 207 case TraceItem::TRACE_FILE_LOAD: | 208 case TraceItem::TRACE_FILE_LOAD: |
| 208 case TraceItem::TRACE_FILE_WRITE: | 209 case TraceItem::TRACE_FILE_WRITE: |
| 209 case TraceItem::TRACE_DEFINE_TARGET: | 210 case TraceItem::TRACE_DEFINE_TARGET: |
| 210 break; // Ignore these for the summary. | 211 break; // Ignore these for the summary. |
| 211 } | 212 } |
| 212 } | 213 } |
| 213 | 214 |
| 214 std::ostringstream out; | 215 std::ostringstream out; |
| 215 SummarizeParses(parses, out); | 216 SummarizeParses(parses, out); |
| 216 out << std::endl; | 217 out << std::endl; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 out << ",\"ts\":" << item.begin().ToInternalValue(); | 259 out << ",\"ts\":" << item.begin().ToInternalValue(); |
| 259 out << ",\"ph\":\"X\""; // "X" = complete event with begin & duration. | 260 out << ",\"ph\":\"X\""; // "X" = complete event with begin & duration. |
| 260 out << ",\"dur\":" << item.delta().InMicroseconds(); | 261 out << ",\"dur\":" << item.delta().InMicroseconds(); |
| 261 | 262 |
| 262 quote_buffer.resize(0); | 263 quote_buffer.resize(0); |
| 263 base::EscapeJSONString(item.name(), true, "e_buffer); | 264 base::EscapeJSONString(item.name(), true, "e_buffer); |
| 264 out << ",\"name\":" << quote_buffer; | 265 out << ",\"name\":" << quote_buffer; |
| 265 | 266 |
| 266 out << ",\"cat\":"; | 267 out << ",\"cat\":"; |
| 267 switch (item.type()) { | 268 switch (item.type()) { |
| 269 case TraceItem::TRACE_SETUP: |
| 270 out << "\"setup\""; |
| 271 break; |
| 268 case TraceItem::TRACE_FILE_LOAD: | 272 case TraceItem::TRACE_FILE_LOAD: |
| 269 out << "\"load\""; | 273 out << "\"load\""; |
| 270 break; | 274 break; |
| 271 case TraceItem::TRACE_FILE_PARSE: | 275 case TraceItem::TRACE_FILE_PARSE: |
| 272 out << "\"parse\""; | 276 out << "\"parse\""; |
| 273 break; | 277 break; |
| 274 case TraceItem::TRACE_FILE_EXECUTE: | 278 case TraceItem::TRACE_FILE_EXECUTE: |
| 275 out << "\"file_exec\""; | 279 out << "\"file_exec\""; |
| 276 break; | 280 break; |
| 277 case TraceItem::TRACE_FILE_WRITE: | 281 case TraceItem::TRACE_FILE_WRITE: |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 } | 316 } |
| 313 out << "}"; | 317 out << "}"; |
| 314 } | 318 } |
| 315 | 319 |
| 316 out << "]}"; | 320 out << "]}"; |
| 317 | 321 |
| 318 std::string out_str = out.str(); | 322 std::string out_str = out.str(); |
| 319 base::WriteFile(file_name, out_str.data(), | 323 base::WriteFile(file_name, out_str.data(), |
| 320 static_cast<int>(out_str.size())); | 324 static_cast<int>(out_str.size())); |
| 321 } | 325 } |
| OLD | NEW |