| OLD | NEW |
| 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 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 thread_ = OSThread::kInvalidThreadId; | 203 thread_ = OSThread::kInvalidThreadId; |
| 204 isolate_ = NULL; | 204 isolate_ = NULL; |
| 205 category_ = ""; | 205 category_ = ""; |
| 206 label_ = NULL; | 206 label_ = NULL; |
| 207 FreeArguments(); | 207 FreeArguments(); |
| 208 } | 208 } |
| 209 | 209 |
| 210 | 210 |
| 211 void TimelineEvent::AsyncBegin(const char* label, int64_t async_id) { | 211 void TimelineEvent::AsyncBegin(const char* label, int64_t async_id) { |
| 212 Init(kAsyncBegin, label); | 212 Init(kAsyncBegin, label); |
| 213 timestamp0_ = OS::GetCurrentTimeMicros(); | 213 timestamp0_ = OS::GetCurrentTraceMicros(); |
| 214 // Overload timestamp1_ with the async_id. | 214 // Overload timestamp1_ with the async_id. |
| 215 timestamp1_ = async_id; | 215 timestamp1_ = async_id; |
| 216 } | 216 } |
| 217 | 217 |
| 218 | 218 |
| 219 void TimelineEvent::AsyncInstant(const char* label, | 219 void TimelineEvent::AsyncInstant(const char* label, |
| 220 int64_t async_id) { | 220 int64_t async_id) { |
| 221 Init(kAsyncInstant, label); | 221 Init(kAsyncInstant, label); |
| 222 timestamp0_ = OS::GetCurrentTimeMicros(); | 222 timestamp0_ = OS::GetCurrentTraceMicros(); |
| 223 // Overload timestamp1_ with the async_id. | 223 // Overload timestamp1_ with the async_id. |
| 224 timestamp1_ = async_id; | 224 timestamp1_ = async_id; |
| 225 } | 225 } |
| 226 | 226 |
| 227 | 227 |
| 228 void TimelineEvent::AsyncEnd(const char* label, | 228 void TimelineEvent::AsyncEnd(const char* label, |
| 229 int64_t async_id) { | 229 int64_t async_id) { |
| 230 Init(kAsyncEnd, label); | 230 Init(kAsyncEnd, label); |
| 231 timestamp0_ = OS::GetCurrentTimeMicros(); | 231 timestamp0_ = OS::GetCurrentTraceMicros(); |
| 232 // Overload timestamp1_ with the async_id. | 232 // Overload timestamp1_ with the async_id. |
| 233 timestamp1_ = async_id; | 233 timestamp1_ = async_id; |
| 234 } | 234 } |
| 235 | 235 |
| 236 | 236 |
| 237 void TimelineEvent::DurationBegin(const char* label) { | 237 void TimelineEvent::DurationBegin(const char* label) { |
| 238 Init(kDuration, label); | 238 Init(kDuration, label); |
| 239 timestamp0_ = OS::GetCurrentTimeMicros(); | 239 timestamp0_ = OS::GetCurrentTraceMicros(); |
| 240 } | 240 } |
| 241 | 241 |
| 242 | 242 |
| 243 void TimelineEvent::DurationEnd() { | 243 void TimelineEvent::DurationEnd() { |
| 244 timestamp1_ = OS::GetCurrentTimeMicros(); | 244 timestamp1_ = OS::GetCurrentTraceMicros(); |
| 245 } | 245 } |
| 246 | 246 |
| 247 | 247 |
| 248 void TimelineEvent::Instant(const char* label) { | 248 void TimelineEvent::Instant(const char* label) { |
| 249 Init(kInstant, label); | 249 Init(kInstant, label); |
| 250 timestamp0_ = OS::GetCurrentTimeMicros(); | 250 timestamp0_ = OS::GetCurrentTraceMicros(); |
| 251 } | 251 } |
| 252 | 252 |
| 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 } |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 | 348 |
| 349 | 349 |
| 350 void TimelineEvent::PrintJSON(JSONStream* stream) const { | 350 void TimelineEvent::PrintJSON(JSONStream* stream) const { |
| 351 JSONObject obj(stream); | 351 JSONObject obj(stream); |
| 352 int64_t pid = OS::ProcessId(); | 352 int64_t pid = OS::ProcessId(); |
| 353 int64_t tid = OSThread::ThreadIdToIntPtr(thread_); | 353 int64_t tid = OSThread::ThreadIdToIntPtr(thread_); |
| 354 obj.AddProperty("name", label_); | 354 obj.AddProperty("name", label_); |
| 355 obj.AddProperty("cat", category_); | 355 obj.AddProperty("cat", category_); |
| 356 obj.AddProperty64("tid", tid); | 356 obj.AddProperty64("tid", tid); |
| 357 obj.AddProperty64("pid", pid); | 357 obj.AddProperty64("pid", pid); |
| 358 obj.AddPropertyTimeMillis("ts", TimeOrigin()); | 358 obj.AddPropertyTimeMicros("ts", TimeOrigin()); |
| 359 | 359 |
| 360 switch (event_type()) { | 360 switch (event_type()) { |
| 361 case kDuration: { | 361 case kDuration: { |
| 362 obj.AddProperty("ph", "X"); | 362 obj.AddProperty("ph", "X"); |
| 363 obj.AddPropertyTimeMillis("dur", TimeDuration()); | 363 obj.AddPropertyTimeMicros("dur", TimeDuration()); |
| 364 } | 364 } |
| 365 break; | 365 break; |
| 366 case kInstant: { | 366 case kInstant: { |
| 367 obj.AddProperty("ph", "i"); | 367 obj.AddProperty("ph", "i"); |
| 368 obj.AddProperty("s", "p"); | 368 obj.AddProperty("s", "p"); |
| 369 } | 369 } |
| 370 break; | 370 break; |
| 371 case kAsyncBegin: { | 371 case kAsyncBegin: { |
| 372 obj.AddProperty("ph", "b"); | 372 obj.AddProperty("ph", "b"); |
| 373 obj.AddPropertyF("id", "%" Px64 "", AsyncId()); | 373 obj.AddPropertyF("id", "%" Px64 "", AsyncId()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 402 | 402 |
| 403 | 403 |
| 404 int64_t TimelineEvent::AsyncId() const { | 404 int64_t TimelineEvent::AsyncId() const { |
| 405 return timestamp1_; | 405 return timestamp1_; |
| 406 } | 406 } |
| 407 | 407 |
| 408 | 408 |
| 409 int64_t TimelineEvent::TimeDuration() const { | 409 int64_t TimelineEvent::TimeDuration() const { |
| 410 if (timestamp1_ == 0) { | 410 if (timestamp1_ == 0) { |
| 411 // This duration is still open, use current time as end. | 411 // This duration is still open, use current time as end. |
| 412 return OS::GetCurrentTimeMicros() - timestamp0_; | 412 return OS::GetCurrentTraceMicros() - timestamp0_; |
| 413 } | 413 } |
| 414 return timestamp1_ - timestamp0_; | 414 return timestamp1_ - timestamp0_; |
| 415 } | 415 } |
| 416 | 416 |
| 417 | 417 |
| 418 TimelineStream::TimelineStream() | 418 TimelineStream::TimelineStream() |
| 419 : name_(NULL), | 419 : name_(NULL), |
| 420 enabled_(false), | 420 enabled_(false), |
| 421 globally_enabled_(NULL) { | 421 globally_enabled_(NULL) { |
| 422 } | 422 } |
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 994 | 994 |
| 995 | 995 |
| 996 TimelineEventBlock* TimelineEventBlockIterator::Next() { | 996 TimelineEventBlock* TimelineEventBlockIterator::Next() { |
| 997 ASSERT(current_ != NULL); | 997 ASSERT(current_ != NULL); |
| 998 TimelineEventBlock* r = current_; | 998 TimelineEventBlock* r = current_; |
| 999 current_ = current_->next(); | 999 current_ = current_->next(); |
| 1000 return r; | 1000 return r; |
| 1001 } | 1001 } |
| 1002 | 1002 |
| 1003 } // namespace dart | 1003 } // namespace dart |
| OLD | NEW |