| Index: src/counters.h
|
| diff --git a/src/counters.h b/src/counters.h
|
| index 1209b454643de30bbb986e0b7760335ca0756b0c..c1da5708ba854b55bbbd592e53484f1409f4cc8f 100644
|
| --- a/src/counters.h
|
| +++ b/src/counters.h
|
| @@ -224,13 +224,16 @@ class Histogram {
|
| // A HistogramTimer allows distributions of results to be created.
|
| class HistogramTimer : public Histogram {
|
| public:
|
| - HistogramTimer() { }
|
| - HistogramTimer(const char* name,
|
| - int min,
|
| - int max,
|
| - int num_buckets,
|
| - Isolate* isolate)
|
| - : Histogram(name, min, max, num_buckets, isolate) {}
|
| + enum Resolution {
|
| + MILLISECOND,
|
| + MICROSECOND
|
| + };
|
| +
|
| + HistogramTimer() {}
|
| + HistogramTimer(const char* name, int min, int max, Resolution resolution,
|
| + int num_buckets, Isolate* isolate)
|
| + : Histogram(name, min, max, num_buckets, isolate),
|
| + resolution_(resolution) {}
|
|
|
| // Start the timer.
|
| void Start();
|
| @@ -250,6 +253,7 @@ class HistogramTimer : public Histogram {
|
|
|
| private:
|
| base::ElapsedTimer timer_;
|
| + Resolution resolution_;
|
| };
|
|
|
| // Helper class for scoping a HistogramTimer.
|
| @@ -315,7 +319,7 @@ class AggregatableHistogramTimer : public Histogram {
|
|
|
| // Start/stop the "outer" scope.
|
| void Start() { time_ = base::TimeDelta(); }
|
| - void Stop() { AddSample(static_cast<int>(time_.InMilliseconds())); }
|
| + void Stop() { AddSample(static_cast<int>(time_.InMicroseconds())); }
|
|
|
| // Add a time value ("inner" scope).
|
| void Add(base::TimeDelta other) { time_ += other; }
|
| @@ -360,30 +364,33 @@ class AggregatedHistogramTimerScope {
|
| HR(gc_idle_time_limit_overshot, V8.GCIdleTimeLimit.Overshot, 0, 10000, 101) \
|
| HR(gc_idle_time_limit_undershot, V8.GCIdleTimeLimit.Undershot, 0, 10000, 101)
|
|
|
| -#define HISTOGRAM_TIMER_LIST(HT) \
|
| - /* Garbage collection timers. */ \
|
| - HT(gc_compactor, V8.GCCompactor) \
|
| - HT(gc_scavenger, V8.GCScavenger) \
|
| - HT(gc_context, V8.GCContext) /* GC context cleanup time */ \
|
| - HT(gc_idle_notification, V8.GCIdleNotification) \
|
| - HT(gc_incremental_marking, V8.GCIncrementalMarking) \
|
| - HT(gc_low_memory_notification, V8.GCLowMemoryNotification) \
|
| - /* Parsing timers. */ \
|
| - HT(parse, V8.Parse) \
|
| - HT(parse_lazy, V8.ParseLazy) \
|
| - HT(pre_parse, V8.PreParse) \
|
| - /* Compilation times. */ \
|
| - HT(compile, V8.Compile) \
|
| - HT(compile_eval, V8.CompileEval) \
|
| - /* Serialization as part of compilation (code caching) */ \
|
| - HT(compile_serialize, V8.CompileSerialize) \
|
| - HT(compile_deserialize, V8.CompileDeserialize) \
|
| - /* Total compilation time incl. caching/parsing */ \
|
| - HT(compile_script, V8.CompileScript)
|
| +#define HISTOGRAM_TIMER_LIST(HT) \
|
| + /* Garbage collection timers. */ \
|
| + HT(gc_compactor, V8.GCCompactor, 10000, MILLISECOND) \
|
| + HT(gc_scavenger, V8.GCScavenger, 10000, MILLISECOND) \
|
| + HT(gc_context, V8.GCContext, 10000, \
|
| + MILLISECOND) /* GC context cleanup time */ \
|
| + HT(gc_idle_notification, V8.GCIdleNotification, 10000, MILLISECOND) \
|
| + HT(gc_incremental_marking, V8.GCIncrementalMarking, 10000, MILLISECOND) \
|
| + HT(gc_low_memory_notification, V8.GCLowMemoryNotification, 10000, \
|
| + MILLISECOND) \
|
| + /* Parsing timers. */ \
|
| + HT(parse, V8.ParseMicroSeconds, 1000000, MICROSECOND) \
|
| + HT(parse_lazy, V8.ParseLazyMicroSeconds, 1000000, MICROSECOND) \
|
| + HT(pre_parse, V8.PreParseMicroSeconds, 1000000, MICROSECOND) \
|
| + /* Compilation times. */ \
|
| + HT(compile, V8.CompileMicroSeconds, 1000000, MICROSECOND) \
|
| + HT(compile_eval, V8.CompileEvalMicroSeconds, 1000000, MICROSECOND) \
|
| + /* Serialization as part of compilation (code caching) */ \
|
| + HT(compile_serialize, V8.CompileSerializeMicroSeconds, 100000, MICROSECOND) \
|
| + HT(compile_deserialize, V8.CompileDeserializeMicroSeconds, 1000000, \
|
| + MICROSECOND) \
|
| + /* Total compilation time incl. caching/parsing */ \
|
| + HT(compile_script, V8.CompileScriptMicroSeconds, 1000000, MICROSECOND)
|
|
|
|
|
| #define AGGREGATABLE_HISTOGRAM_TIMER_LIST(AHT) \
|
| - AHT(compile_lazy, V8.CompileLazy)
|
| + AHT(compile_lazy, V8.CompileLazyMicroSeconds)
|
|
|
|
|
| #define HISTOGRAM_PERCENTAGE_LIST(HP) \
|
| @@ -631,7 +638,7 @@ class Counters {
|
| HISTOGRAM_RANGE_LIST(HR)
|
| #undef HR
|
|
|
| -#define HT(name, caption) \
|
| +#define HT(name, caption, max, res) \
|
| HistogramTimer* name() { return &name##_; }
|
| HISTOGRAM_TIMER_LIST(HT)
|
| #undef HT
|
| @@ -688,7 +695,7 @@ class Counters {
|
| #undef SC
|
|
|
| enum Id {
|
| -#define RATE_ID(name, caption) k_##name,
|
| +#define RATE_ID(name, caption, max, res) k_##name,
|
| HISTOGRAM_TIMER_LIST(RATE_ID)
|
| #undef RATE_ID
|
| #define AGGREGATABLE_ID(name, caption) k_##name,
|
| @@ -730,8 +737,7 @@ class Counters {
|
| HISTOGRAM_RANGE_LIST(HR)
|
| #undef HR
|
|
|
| -#define HT(name, caption) \
|
| - HistogramTimer name##_;
|
| +#define HT(name, caption, max, res) HistogramTimer name##_;
|
| HISTOGRAM_TIMER_LIST(HT)
|
| #undef HT
|
|
|
|
|