LCOV - code coverage report
Current view: top level - src - counters-inl.h (source / functions) Hit Total Coverage
Test: app.info Lines: 12 27 44.4 %
Date: 2017-04-26 Functions: 3 5 60.0 %

          Line data    Source code
       1             : // Copyright 2016 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #ifndef V8_COUNTERS_INL_H_
       6             : #define V8_COUNTERS_INL_H_
       7             : 
       8             : #include "src/counters.h"
       9             : 
      10             : namespace v8 {
      11             : namespace internal {
      12             : 
      13           0 : void RuntimeCallTimer::Start(RuntimeCallCounter* counter,
      14             :                              RuntimeCallTimer* parent) {
      15             :   DCHECK(!IsStarted());
      16           0 :   counter_ = counter;
      17             :   parent_.SetValue(parent);
      18           0 :   if (FLAG_runtime_stats ==
      19             :       v8::tracing::TracingCategoryObserver::ENABLED_BY_SAMPLING) {
      20           0 :     return;
      21             :   }
      22             :   base::TimeTicks now = Now();
      23           0 :   if (parent) parent->Pause(now);
      24             :   Resume(now);
      25             :   DCHECK(IsStarted());
      26             : }
      27             : 
      28             : void RuntimeCallTimer::Pause(base::TimeTicks now) {
      29             :   DCHECK(IsStarted());
      30             :   elapsed_ += (now - start_ticks_);
      31           0 :   start_ticks_ = base::TimeTicks();
      32             : }
      33             : 
      34             : void RuntimeCallTimer::Resume(base::TimeTicks now) {
      35             :   DCHECK(!IsStarted());
      36           0 :   start_ticks_ = now;
      37             : }
      38             : 
      39           0 : RuntimeCallTimer* RuntimeCallTimer::Stop() {
      40           0 :   if (!IsStarted()) return parent();
      41             :   base::TimeTicks now = Now();
      42             :   Pause(now);
      43           0 :   counter_->Increment();
      44             :   CommitTimeToCounter();
      45             : 
      46             :   RuntimeCallTimer* parent_timer = parent();
      47           0 :   if (parent_timer) {
      48             :     parent_timer->Resume(now);
      49             :   }
      50           0 :   return parent_timer;
      51             : }
      52             : 
      53             : void RuntimeCallTimer::CommitTimeToCounter() {
      54           0 :   counter_->Add(elapsed_);
      55             :   elapsed_ = base::TimeDelta();
      56             : }
      57             : 
      58             : bool RuntimeCallTimer::IsStarted() { return start_ticks_ != base::TimeTicks(); }
      59             : 
      60             : base::TimeTicks RuntimeCallTimer::Now() {
      61           0 :   return base::TimeTicks::HighResolutionNow();
      62             : }
      63             : 
      64   600971186 : RuntimeCallTimerScope::RuntimeCallTimerScope(
      65   600971186 :     Isolate* isolate, RuntimeCallStats::CounterId counter_id) {
      66   600971186 :   if (V8_UNLIKELY(FLAG_runtime_stats)) {
      67           0 :     Initialize(isolate->counters()->runtime_call_stats(), counter_id);
      68             :   }
      69   600971186 : }
      70             : 
      71    61997281 : RuntimeCallTimerScope::RuntimeCallTimerScope(
      72    61997281 :     HeapObject* heap_object, RuntimeCallStats::CounterId counter_id) {
      73   123994613 :   RuntimeCallTimerScope(heap_object->GetIsolate(), counter_id);
      74    61997332 : }
      75             : 
      76    19929335 : RuntimeCallTimerScope::RuntimeCallTimerScope(
      77    19929335 :     RuntimeCallStats* stats, RuntimeCallStats::CounterId counter_id) {
      78    19929335 :   if (V8_UNLIKELY(FLAG_runtime_stats)) {
      79             :     Initialize(stats, counter_id);
      80             :   }
      81    19929335 : }
      82             : 
      83             : }  // namespace internal
      84             : }  // namespace v8
      85             : 
      86             : #endif  // V8_COUNTERS_INL_H_

Generated by: LCOV version 1.10