| Index: src/counters.h
|
| diff --git a/src/counters.h b/src/counters.h
|
| index 10a845dddce9a775c45feeb19b745b65ca721eed..057c24e3f383ae321f057bb3d6796effe7b9227e 100644
|
| --- a/src/counters.h
|
| +++ b/src/counters.h
|
| @@ -9,8 +9,10 @@
|
| #include "src/allocation.h"
|
| #include "src/base/platform/elapsed-timer.h"
|
| #include "src/base/platform/time.h"
|
| +#include "src/builtins.h"
|
| #include "src/globals.h"
|
| #include "src/objects.h"
|
| +#include "src/runtime/runtime.h"
|
|
|
| namespace v8 {
|
| namespace internal {
|
| @@ -699,6 +701,30 @@ double AggregatedMemoryHistogram<Histogram>::Aggregate(double current_ms,
|
| /* Total count of functions compiled using the baseline compiler. */ \
|
| SC(total_baseline_compile_count, V8.TotalBaselineCompileCount)
|
|
|
| +struct RuntimeCallStats {
|
| +#define CALL_RUNTIME_COUNTER(name, nargs, ressize) \
|
| + uint32_t Count_Runtime_##name; \
|
| + base::TimeDelta Time_Runtime_##name;
|
| + FOR_EACH_INTRINSIC(CALL_RUNTIME_COUNTER)
|
| +#undef CALL_RUNTIME_COUNTER
|
| +#define CALL_BUILTIN_COUNTER(name, type) \
|
| + uint32_t Count_Builtin_##name; \
|
| + base::TimeDelta Time_Builtin_##name;
|
| + BUILTIN_LIST_C(CALL_BUILTIN_COUNTER)
|
| +#undef CALL_BUILTIN_COUNTER
|
| +
|
| + // Dummy counter for the unexpected stub miss.
|
| + uint32_t Count_UnexpectedStubMiss;
|
| + base::TimeDelta Time_UnexpectedStubMiss;
|
| +
|
| + bool in_runtime_call = false;
|
| +
|
| + void Reset();
|
| + void Print(std::ostream& os);
|
| +
|
| + RuntimeCallStats() { Reset(); }
|
| +};
|
| +
|
| // This file contains all the v8 counters that are in use.
|
| class Counters {
|
| public:
|
| @@ -809,6 +835,7 @@ class Counters {
|
|
|
| void ResetCounters();
|
| void ResetHistograms();
|
| + RuntimeCallStats* runtime_call_stats() { return &runtime_call_stats_; }
|
|
|
| private:
|
| #define HR(name, caption, min, max, num_buckets) Histogram name##_;
|
| @@ -870,6 +897,8 @@ class Counters {
|
| CODE_AGE_LIST_COMPLETE(SC)
|
| #undef SC
|
|
|
| + RuntimeCallStats runtime_call_stats_;
|
| +
|
| friend class Isolate;
|
|
|
| explicit Counters(Isolate* isolate);
|
|
|