Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Unified Diff: src/counters.h

Issue 2759033002: Generate less code in v8::internal::Counters constructor (Closed)
Patch Set: export for win component build Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/counters.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/counters.h
diff --git a/src/counters.h b/src/counters.h
index ab9fb481ce0aeb8e33015e9fe18c9ec42e02a1b9..6626c50ad121195a49c58d3f2a13f8ed312c0c75 100644
--- a/src/counters.h
+++ b/src/counters.h
@@ -486,21 +486,29 @@ double AggregatedMemoryHistogram<Histogram>::Aggregate(double current_ms,
class RuntimeCallCounter final {
public:
- explicit RuntimeCallCounter(const char* name) : name_(name) {}
+ explicit RuntimeCallCounter(const char* name)
+ : name_(name), count_(0), time_(0) {}
V8_NOINLINE void Reset();
V8_NOINLINE void Dump(v8::tracing::TracedValue* value);
void Add(RuntimeCallCounter* other);
const char* name() const { return name_; }
int64_t count() const { return count_; }
- base::TimeDelta time() const { return time_; }
+ base::TimeDelta time() const {
+ return base::TimeDelta::FromMicroseconds(time_);
+ }
void Increment() { count_++; }
- void Add(base::TimeDelta delta) { time_ += delta; }
+ void Add(base::TimeDelta delta) { time_ += delta.InMicroseconds(); }
private:
+ RuntimeCallCounter() {}
+
const char* name_;
- int64_t count_ = 0;
- base::TimeDelta time_;
+ int64_t count_;
+ // Stored as int64_t so that its initialization can be deferred.
+ int64_t time_;
+
+ friend class RuntimeCallStats;
};
// RuntimeCallTimer is used to keep track of the stack of currently active
@@ -826,25 +834,22 @@ class RuntimeCallTimer final {
class RuntimeCallStats final : public ZoneObject {
public:
typedef RuntimeCallCounter RuntimeCallStats::*CounterId;
+ V8_EXPORT_PRIVATE RuntimeCallStats();
-#define CALL_RUNTIME_COUNTER(name) \
- RuntimeCallCounter name = RuntimeCallCounter(#name);
+#define CALL_RUNTIME_COUNTER(name) RuntimeCallCounter name;
FOR_EACH_MANUAL_COUNTER(CALL_RUNTIME_COUNTER)
#undef CALL_RUNTIME_COUNTER
#define CALL_RUNTIME_COUNTER(name, nargs, ressize) \
- RuntimeCallCounter Runtime_##name = RuntimeCallCounter(#name);
+ RuntimeCallCounter Runtime_##name;
FOR_EACH_INTRINSIC(CALL_RUNTIME_COUNTER)
#undef CALL_RUNTIME_COUNTER
-#define CALL_BUILTIN_COUNTER(name) \
- RuntimeCallCounter Builtin_##name = RuntimeCallCounter(#name);
+#define CALL_BUILTIN_COUNTER(name) RuntimeCallCounter Builtin_##name;
BUILTIN_LIST_C(CALL_BUILTIN_COUNTER)
#undef CALL_BUILTIN_COUNTER
-#define CALL_BUILTIN_COUNTER(name) \
- RuntimeCallCounter API_##name = RuntimeCallCounter("API_" #name);
+#define CALL_BUILTIN_COUNTER(name) RuntimeCallCounter API_##name;
FOR_EACH_API_COUNTER(CALL_BUILTIN_COUNTER)
#undef CALL_BUILTIN_COUNTER
-#define CALL_BUILTIN_COUNTER(name) \
- RuntimeCallCounter Handler_##name = RuntimeCallCounter(#name);
+#define CALL_BUILTIN_COUNTER(name) RuntimeCallCounter Handler_##name;
FOR_EACH_HANDLER_COUNTER(CALL_BUILTIN_COUNTER)
#undef CALL_BUILTIN_COUNTER
@@ -874,11 +879,6 @@ class RuntimeCallStats final : public ZoneObject {
V8_EXPORT_PRIVATE void Print(std::ostream& os);
V8_NOINLINE void Dump(v8::tracing::TracedValue* value);
- RuntimeCallStats() {
- Reset();
- in_use_ = false;
- }
-
RuntimeCallTimer* current_timer() { return current_timer_.Value(); }
bool InUse() { return in_use_; }
« no previous file with comments | « no previous file | src/counters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698