| Index: src/counters.h
|
| diff --git a/src/counters.h b/src/counters.h
|
| index b07381463faebc0579ce3b9dda780ba1543914cf..58e13662df7ba4e59387b57114e5f9e54c5e9cf6 100644
|
| --- a/src/counters.h
|
| +++ b/src/counters.h
|
| @@ -25,12 +25,14 @@ namespace internal {
|
| // counters for monitoring. Counters can be looked up and
|
| // manipulated by name.
|
|
|
| +class Counters;
|
| +
|
| class StatsTable {
|
| public:
|
| // Register an application-defined function where
|
| // counters can be looked up. Note: Must be called on main thread,
|
| // so that threaded stats counters can be created now.
|
| - void SetCounterFunction(CounterLookupCallback f, Isolate* isolate);
|
| + void SetCounterFunction(CounterLookupCallback f);
|
|
|
| // Register an application-defined function to create
|
| // a histogram for passing to the AddHistogramSample function
|
| @@ -80,29 +82,29 @@ class StatsTable {
|
| }
|
|
|
| private:
|
| - StatsTable();
|
| + explicit StatsTable(Counters* counters);
|
|
|
| + Counters* counters_;
|
| CounterLookupCallback lookup_function_;
|
| CreateHistogramCallback create_histogram_function_;
|
| AddHistogramSampleCallback add_histogram_sample_function_;
|
|
|
| - friend class Isolate;
|
| + friend class Counters;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(StatsTable);
|
| };
|
|
|
| // Base class for stats counters.
|
| class StatsCounterBase {
|
| - public:
|
| - StatsCounterBase() {}
|
| - StatsCounterBase(Isolate* isolate, const char* name)
|
| - : isolate_(isolate), name_(name), ptr_(nullptr) {}
|
| -
|
| protected:
|
| - Isolate* isolate_;
|
| + Counters* counters_;
|
| const char* name_;
|
| int* ptr_;
|
|
|
| + StatsCounterBase() {}
|
| + StatsCounterBase(Counters* counters, const char* name)
|
| + : counters_(counters), name_(name), ptr_(nullptr) {}
|
| +
|
| void SetLoc(int* loc, int value) { *loc = value; }
|
| void IncrementLoc(int* loc) { (*loc)++; }
|
| void IncrementLoc(int* loc, int value) { (*loc) += value; }
|
| @@ -123,8 +125,8 @@ class StatsCounterBase {
|
| class StatsCounter : public StatsCounterBase {
|
| public:
|
| StatsCounter() { }
|
| - StatsCounter(Isolate* isolate, const char* name)
|
| - : StatsCounterBase(isolate, name), lookup_done_(false) {}
|
| + StatsCounter(Counters* counters, const char* name)
|
| + : StatsCounterBase(counters, name), lookup_done_(false) {}
|
|
|
| // Sets the counter to a specific value.
|
| void Set(int value) {
|
| @@ -185,7 +187,7 @@ class StatsCounter : public StatsCounterBase {
|
| // (i.e. not workers).
|
| class StatsCounterThreadSafe : public StatsCounterBase {
|
| public:
|
| - StatsCounterThreadSafe(Isolate* isolate, const char* name);
|
| + StatsCounterThreadSafe(Counters* counters, const char* name);
|
|
|
| void Set(int Value);
|
| void Increment();
|
| @@ -213,18 +215,15 @@ class StatsCounterThreadSafe : public StatsCounterBase {
|
| class Histogram {
|
| public:
|
| Histogram() { }
|
| - Histogram(const char* name,
|
| - int min,
|
| - int max,
|
| - int num_buckets,
|
| - Isolate* isolate)
|
| + Histogram(const char* name, int min, int max, int num_buckets,
|
| + Counters* counters)
|
| : name_(name),
|
| min_(min),
|
| max_(max),
|
| num_buckets_(num_buckets),
|
| histogram_(NULL),
|
| lookup_done_(false),
|
| - isolate_(isolate) { }
|
| + counters_(counters) {}
|
|
|
| // Add a single sample to this histogram.
|
| void AddSample(int sample);
|
| @@ -251,7 +250,7 @@ class Histogram {
|
| return histogram_;
|
| }
|
|
|
| - Isolate* isolate() const { return isolate_; }
|
| + Counters* counters() const { return counters_; }
|
|
|
| private:
|
| void* CreateHistogram() const;
|
| @@ -262,7 +261,7 @@ class Histogram {
|
| int num_buckets_;
|
| void* histogram_;
|
| bool lookup_done_;
|
| - Isolate* isolate_;
|
| + Counters* counters_;
|
| };
|
|
|
| // A HistogramTimer allows distributions of results to be created.
|
| @@ -275,8 +274,8 @@ class HistogramTimer : public Histogram {
|
|
|
| HistogramTimer() {}
|
| HistogramTimer(const char* name, int min, int max, Resolution resolution,
|
| - int num_buckets, Isolate* isolate)
|
| - : Histogram(name, min, max, num_buckets, isolate),
|
| + int num_buckets, Counters* counters)
|
| + : Histogram(name, min, max, num_buckets, counters),
|
| resolution_(resolution) {}
|
|
|
| // Start the timer.
|
| @@ -358,8 +357,8 @@ class AggregatableHistogramTimer : public Histogram {
|
| public:
|
| AggregatableHistogramTimer() {}
|
| AggregatableHistogramTimer(const char* name, int min, int max,
|
| - int num_buckets, Isolate* isolate)
|
| - : Histogram(name, min, max, num_buckets, isolate) {}
|
| + int num_buckets, Counters* counters)
|
| + : Histogram(name, min, max, num_buckets, counters) {}
|
|
|
| // Start/stop the "outer" scope.
|
| void Start() { time_ = base::TimeDelta(); }
|
| @@ -1335,7 +1334,14 @@ class Counters : public std::enable_shared_from_this<Counters> {
|
|
|
| RuntimeCallStats* runtime_call_stats() { return &runtime_call_stats_; }
|
|
|
| + StatsTable* stats_table() { return &stats_table_; }
|
| +
|
| + Isolate* isolate() { return isolate_; }
|
| +
|
| private:
|
| + Isolate* isolate_;
|
| + StatsTable stats_table_;
|
| +
|
| #define HR(name, caption, min, max, num_buckets) Histogram name##_;
|
| HISTOGRAM_RANGE_LIST(HR)
|
| #undef HR
|
| @@ -1401,8 +1407,6 @@ class Counters : public std::enable_shared_from_this<Counters> {
|
|
|
| RuntimeCallStats runtime_call_stats_;
|
|
|
| - friend class Isolate;
|
| -
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(Counters);
|
| };
|
|
|
|
|