| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project 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 "src/counters.h" | 5 #include "src/counters.h" |
| 6 | 6 |
| 7 #include <iomanip> | 7 #include <iomanip> |
| 8 | 8 |
| 9 #include "src/base/platform/platform.h" | 9 #include "src/base/platform/platform.h" |
| 10 #include "src/isolate.h" | 10 #include "src/isolate.h" |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 base::TimeDelta total_time; | 266 base::TimeDelta total_time; |
| 267 std::vector<Entry> entries; | 267 std::vector<Entry> entries; |
| 268 }; | 268 }; |
| 269 | 269 |
| 270 void RuntimeCallCounter::Reset() { | 270 void RuntimeCallCounter::Reset() { |
| 271 count = 0; | 271 count = 0; |
| 272 time = base::TimeDelta(); | 272 time = base::TimeDelta(); |
| 273 } | 273 } |
| 274 | 274 |
| 275 void RuntimeCallStats::Enter(RuntimeCallCounter* counter) { | 275 void RuntimeCallStats::Enter(RuntimeCallCounter* counter) { |
| 276 Enter(new RuntimeCallTimer(counter, current_timer_)); | 276 RuntimeCallTimer* timer = new RuntimeCallTimer(); |
| 277 timer->Initialize(counter, current_timer_); |
| 278 Enter(timer); |
| 277 } | 279 } |
| 278 | 280 |
| 279 void RuntimeCallStats::Enter(RuntimeCallTimer* timer_) { | 281 void RuntimeCallStats::Enter(RuntimeCallTimer* timer_) { |
| 280 current_timer_ = timer_; | 282 current_timer_ = timer_; |
| 281 current_timer_->Start(); | 283 current_timer_->Start(); |
| 282 } | 284 } |
| 283 | 285 |
| 284 void RuntimeCallStats::Leave() { | 286 void RuntimeCallStats::Leave() { |
| 285 RuntimeCallTimer* timer = current_timer_; | 287 RuntimeCallTimer* timer = current_timer_; |
| 286 Leave(timer); | 288 Leave(timer); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 309 } | 311 } |
| 310 | 312 |
| 311 void RuntimeCallStats::Reset() { | 313 void RuntimeCallStats::Reset() { |
| 312 if (!FLAG_runtime_call_stats) return; | 314 if (!FLAG_runtime_call_stats) return; |
| 313 #define RESET_COUNTER(name, nargs, ressize) this->Runtime_##name.Reset(); | 315 #define RESET_COUNTER(name, nargs, ressize) this->Runtime_##name.Reset(); |
| 314 FOR_EACH_INTRINSIC(RESET_COUNTER) | 316 FOR_EACH_INTRINSIC(RESET_COUNTER) |
| 315 #undef RESET_COUNTER | 317 #undef RESET_COUNTER |
| 316 #define RESET_COUNTER(name, type) this->Builtin_##name.Reset(); | 318 #define RESET_COUNTER(name, type) this->Builtin_##name.Reset(); |
| 317 BUILTIN_LIST_C(RESET_COUNTER) | 319 BUILTIN_LIST_C(RESET_COUNTER) |
| 318 #undef RESET_COUNTER | 320 #undef RESET_COUNTER |
| 321 this->ExternalCallback.Reset(); |
| 322 this->UnexpectedStubMiss.Reset(); |
| 319 } | 323 } |
| 320 | 324 |
| 321 RuntimeCallTimerScope::RuntimeCallTimerScope(Isolate* isolate, | 325 void RuntimeCallTimerScope::Enter(Isolate* isolate, |
| 322 RuntimeCallCounter* counter) | 326 RuntimeCallCounter* counter) { |
| 323 : isolate_(isolate), | 327 isolate_ = isolate; |
| 324 timer_(counter, | 328 RuntimeCallStats* stats = isolate->counters()->runtime_call_stats(); |
| 325 isolate->counters()->runtime_call_stats()->current_timer()) { | 329 timer_.Initialize(counter, stats->current_timer()); |
| 326 if (!FLAG_runtime_call_stats) return; | 330 stats->Enter(&timer_); |
| 327 isolate->counters()->runtime_call_stats()->Enter(&timer_); | |
| 328 } | 331 } |
| 329 | 332 |
| 330 RuntimeCallTimerScope::~RuntimeCallTimerScope() { | 333 void RuntimeCallTimerScope::Leave() { |
| 331 if (!FLAG_runtime_call_stats) return; | |
| 332 isolate_->counters()->runtime_call_stats()->Leave(&timer_); | 334 isolate_->counters()->runtime_call_stats()->Leave(&timer_); |
| 333 } | 335 } |
| 334 | 336 |
| 335 } // namespace internal | 337 } // namespace internal |
| 336 } // namespace v8 | 338 } // namespace v8 |
| OLD | NEW |