Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: runtime/vm/timeline.cc

Issue 1386263002: Add support to timeline for begin and end events (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/timeline.h ('k') | runtime/vm/timeline_analysis.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include <cstdlib> 5 #include <cstdlib>
6 6
7 #include "vm/atomic.h" 7 #include "vm/atomic.h"
8 #include "vm/isolate.h" 8 #include "vm/isolate.h"
9 #include "vm/json_stream.h" 9 #include "vm/json_stream.h"
10 #include "vm/lockers.h" 10 #include "vm/lockers.h"
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 253
254 void TimelineEvent::Duration(const char* label, 254 void TimelineEvent::Duration(const char* label,
255 int64_t start_micros, 255 int64_t start_micros,
256 int64_t end_micros) { 256 int64_t end_micros) {
257 Init(kDuration, label); 257 Init(kDuration, label);
258 timestamp0_ = start_micros; 258 timestamp0_ = start_micros;
259 timestamp1_ = end_micros; 259 timestamp1_ = end_micros;
260 } 260 }
261 261
262 262
263 void TimelineEvent::Begin(const char* label,
264 int64_t micros) {
265 Init(kBegin, label);
266 timestamp0_ = micros;
267 }
268
269
270 void TimelineEvent::End(const char* label,
271 int64_t micros) {
272 Init(kEnd, label);
273 timestamp0_ = micros;
274 }
275
276
263 void TimelineEvent::SetNumArguments(intptr_t length) { 277 void TimelineEvent::SetNumArguments(intptr_t length) {
264 // Cannot call this twice. 278 // Cannot call this twice.
265 ASSERT(arguments_ == NULL); 279 ASSERT(arguments_ == NULL);
266 ASSERT(arguments_length_ == 0); 280 ASSERT(arguments_length_ == 0);
267 arguments_length_ = length; 281 arguments_length_ = length;
268 arguments_ = reinterpret_cast<TimelineEventArgument*>( 282 arguments_ = reinterpret_cast<TimelineEventArgument*>(
269 calloc(sizeof(TimelineEventArgument), length)); 283 calloc(sizeof(TimelineEventArgument), length));
270 } 284 }
271 285
272 286
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 JSONObject obj(stream); 365 JSONObject obj(stream);
352 int64_t pid = OS::ProcessId(); 366 int64_t pid = OS::ProcessId();
353 int64_t tid = OSThread::ThreadIdToIntPtr(thread_); 367 int64_t tid = OSThread::ThreadIdToIntPtr(thread_);
354 obj.AddProperty("name", label_); 368 obj.AddProperty("name", label_);
355 obj.AddProperty("cat", category_); 369 obj.AddProperty("cat", category_);
356 obj.AddProperty64("tid", tid); 370 obj.AddProperty64("tid", tid);
357 obj.AddProperty64("pid", pid); 371 obj.AddProperty64("pid", pid);
358 obj.AddPropertyTimeMicros("ts", TimeOrigin()); 372 obj.AddPropertyTimeMicros("ts", TimeOrigin());
359 373
360 switch (event_type()) { 374 switch (event_type()) {
375 case kBegin: {
376 obj.AddProperty("ph", "B");
377 }
378 break;
379 case kEnd: {
380 obj.AddProperty("ph", "E");
381 }
382 break;
361 case kDuration: { 383 case kDuration: {
362 obj.AddProperty("ph", "X"); 384 obj.AddProperty("ph", "X");
363 obj.AddPropertyTimeMicros("dur", TimeDuration()); 385 obj.AddPropertyTimeMicros("dur", TimeDuration());
364 } 386 }
365 break; 387 break;
366 case kInstant: { 388 case kInstant: {
367 obj.AddProperty("ph", "i"); 389 obj.AddProperty("ph", "i");
368 obj.AddProperty("s", "p"); 390 obj.AddProperty("s", "p");
369 } 391 }
370 break; 392 break;
(...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after
1251 // If an isolate was specified, skip events from other isolates. 1273 // If an isolate was specified, skip events from other isolates.
1252 continue; 1274 continue;
1253 } 1275 }
1254 ASSERT(event->event_as_json() != NULL); 1276 ASSERT(event->event_as_json() != NULL);
1255 result = zone->ConcatStrings(result, event->event_as_json()); 1277 result = zone->ConcatStrings(result, event->event_as_json());
1256 } 1278 }
1257 return result; 1279 return result;
1258 } 1280 }
1259 1281
1260 } // namespace dart 1282 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/timeline.h ('k') | runtime/vm/timeline_analysis.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698