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 "vm/timeline_analysis.h" | 5 #include "vm/timeline_analysis.h" |
6 | 6 |
7 #include "vm/flags.h" | 7 #include "vm/flags.h" |
8 #include "vm/isolate.h" | 8 #include "vm/isolate.h" |
9 #include "vm/log.h" | 9 #include "vm/log.h" |
10 #include "vm/os_thread.h" | 10 #include "vm/os_thread.h" |
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 ASSERT(thread != NULL); | 499 ASSERT(thread != NULL); |
500 Isolate* isolate = thread->isolate(); | 500 Isolate* isolate = thread->isolate(); |
501 ASSERT(isolate != NULL); | 501 ASSERT(isolate != NULL); |
502 Zone* zone = thread->zone(); | 502 Zone* zone = thread->zone(); |
503 ASSERT(zone != NULL); | 503 ASSERT(zone != NULL); |
504 TimelineEventRecorder* recorder = Timeline::recorder(); | 504 TimelineEventRecorder* recorder = Timeline::recorder(); |
505 ASSERT(recorder != NULL); | 505 ASSERT(recorder != NULL); |
506 TimelinePauses pauses(zone, isolate, recorder); | 506 TimelinePauses pauses(zone, isolate, recorder); |
507 pauses.Setup(); | 507 pauses.Setup(); |
508 | 508 |
509 THR_Print("Timing for isolate %s (from %" Pd " threads)\n", isolate->name(), | 509 THR_Print("Timing for isolate (%" Pd64 ") '%s' (from %" Pd " threads)\n", |
| 510 static_cast<int64_t>(isolate->main_port()), isolate->name(), |
510 pauses.NumThreads()); | 511 pauses.NumThreads()); |
511 THR_Print("\n"); | 512 THR_Print("\n"); |
512 for (intptr_t t_idx = 0; t_idx < pauses.NumThreads(); t_idx++) { | 513 for (intptr_t t_idx = 0; t_idx < pauses.NumThreads(); t_idx++) { |
513 TimelineAnalysisThread* tat = pauses.At(t_idx); | 514 TimelineAnalysisThread* tat = pauses.At(t_idx); |
514 ASSERT(tat != NULL); | 515 ASSERT(tat != NULL); |
515 pauses.CalculatePauseTimesForThread(tat->id()); | 516 pauses.CalculatePauseTimesForThread(tat->id()); |
516 THR_Print("Thread %" Pd " (%" Px "):\n", t_idx, | 517 THR_Print("Thread %" Pd " (%" Px "):\n", t_idx, |
517 OSThread::ThreadIdToIntPtr(tat->id())); | 518 OSThread::ThreadIdToIntPtr(tat->id())); |
518 for (intptr_t j = 0; j < pauses.NumPauseInfos(); j++) { | 519 for (intptr_t j = 0; j < pauses.NumPauseInfos(); j++) { |
519 const TimelineLabelPauseInfo* pause_info = pauses.PauseInfoAt(j); | 520 const TimelineLabelPauseInfo* pause_info = pauses.PauseInfoAt(j); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 MicrosecondsToMilliseconds(pause_info->exclusive_micros())); | 568 MicrosecondsToMilliseconds(pause_info->exclusive_micros())); |
568 THR_Print("%.3f ms max on stack; ", | 569 THR_Print("%.3f ms max on stack; ", |
569 MicrosecondsToMilliseconds(pause_info->max_inclusive_micros())); | 570 MicrosecondsToMilliseconds(pause_info->max_inclusive_micros())); |
570 THR_Print("%.3f ms max executing.\n", | 571 THR_Print("%.3f ms max executing.\n", |
571 MicrosecondsToMilliseconds(pause_info->max_exclusive_micros())); | 572 MicrosecondsToMilliseconds(pause_info->max_exclusive_micros())); |
572 } | 573 } |
573 | 574 |
574 #endif // !PRODUCT | 575 #endif // !PRODUCT |
575 | 576 |
576 } // namespace dart | 577 } // namespace dart |
OLD | NEW |