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

Unified Diff: src/counters.h

Issue 1923893002: [counters] Annotate v8 with more runtime call counters. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: removing unused macro Created 4 years, 7 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
« src/api.cc ('K') | « src/compiler.cc ('k') | 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 d2870c2fd2a95a28751683f43062d9850694fcf6..9edf2f45125e4864fdee9cf825abd52aa3d1464a 100644
--- a/src/counters.h
+++ b/src/counters.h
@@ -485,6 +485,7 @@ struct RuntimeCallCounter {
const char* name;
int64_t count = 0;
+ bool enabled = true;
base::TimeDelta time;
};
@@ -503,9 +504,12 @@ class RuntimeCallTimer {
counter_->count++;
}
+ inline bool enabled() { return counter_ != NULL; }
+
inline RuntimeCallTimer* Stop() {
base::TimeDelta delta = timer_.Elapsed();
counter_->time += delta;
+
if (parent_ != NULL) {
parent_->AdjustForSubTimer(delta);
}
@@ -522,13 +526,171 @@ class RuntimeCallTimer {
base::ElapsedTimer timer_;
};
+#define API_COUNTER(V) \
+ V(Array_New) \
+ V(BooleanObject_BooleanValue) \
+ V(BooleanObject_New) \
+ V(Context_New) \
+ V(Date_DateTimeConfigurationChangeNotification) \
+ V(Date_New) \
+ V(Date_NumberValue) \
+ V(Error) \
+ V(External_New) \
+ V(Function_New) \
+ V(FunctionTemplate_New) \
+ V(FunctionTemplate_NewWithFastHandler) \
+ V(Int32Value) \
+ V(IntegerValue) \
+ V(JSON_Parse) \
+ V(JSON_Stringify) \
+ V(Map_AsArray) \
+ V(Map_Clear) \
+ V(Map_Delete) \
+ V(Map_Get) \
+ V(Map_Has) \
+ V(Map_New) \
+ V(Map_Set) \
+ V(NumberObject_New) \
+ V(NumberObject_NumberValue) \
+ V(NumberValue) \
+ V(Object_New) \
+ V(ObjectTemplate_New) \
+ V(Persistent_New) \
+ V(Private_New) \
+ V(Promise_Catch) \
+ V(Promise_Chain) \
+ V(Promise_HasRejectHandler) \
+ V(Promise_Resolver_New) \
+ V(Promise_Resolver_Resolve) \
+ V(Promise_Then) \
+ V(Proxy_New) \
+ V(RangeError) \
+ V(ReferenceError) \
+ V(RegExp_New) \
+ V(Set_Add) \
+ V(Set_AsArray) \
+ V(Set_Clear) \
+ V(Set_Delete) \
+ V(Set_Has) \
+ V(Set_New) \
+ V(String_NewExternalOneByte) \
+ V(String_NewExternalTwoByte) \
+ V(String_NewFromOneByte) \
+ V(String_NewFromTwoByte) \
+ V(String_NewFromUtf8) \
+ V(StringObject_New) \
+ V(StringObject_StringValue) \
+ V(String_Write) \
+ V(String_WriteUtf8) \
+ V(Symbol_New) \
+ V(SymbolObject_New) \
+ V(SymbolObject_SymbolValue) \
+ V(SyntaxError) \
+ V(ToArrayIndex) \
+ V(ToDetailString) \
+ V(ToInt32) \
+ V(ToInteger) \
+ V(ToNumber) \
+ V(ToObject) \
+ V(ToString) \
+ V(ToUint32) \
+ V(TypeError) \
+ V(Uint32Value) \
+ V(UnboundScript_GetLineNumber) \
+ V(UnboundScript_GetName) \
+ V(UnboundScript_GetSourceMappingURL) \
+ V(UnboundScript_GetSourceURL) \
+ V(v8_ArrayBuffer_Cast) \
+ V(v8_ArrayBuffer_Neuter) \
+ V(v8_ArrayBuffer_New) \
+ V(v8_Array_CloneElementAt) \
+ V(v8_DataView_New) \
+ V(v8_Debug_Call) \
+ V(v8_Debug_GetMirror) \
+ V(v8_Float32Array_New) \
+ V(v8_Float64Array_New) \
+ V(v8_Function_Call) \
+ V(v8_Function_NewInstance) \
+ V(v8_FunctionTemplate_GetFunction) \
+ V(v8_Int16Array_New) \
+ V(v8_Int32Array_New) \
+ V(v8_Int8Array_New) \
+ V(v8_Message_GetEndColumn) \
+ V(v8_Message_GetLineNumber) \
+ V(v8_Message_GetSourceLine) \
+ V(v8_Message_GetStartColumn) \
+ V(v8_Object_CallAsConstructor) \
+ V(v8_Object_CallAsFunction) \
+ V(v8_Object_CreateDataProperty) \
+ V(v8_Object_DefineOwnProperty) \
+ V(v8_Object_Delete) \
+ V(v8_Object_DeleteProperty) \
+ V(v8_Object_ForceSet) \
+ V(v8_Object_Get) \
+ V(v8_Object_GetOwnPropertyDescriptor) \
+ V(v8_Object_GetOwnPropertyNames) \
+ V(v8_Object_GetPropertyAttributes) \
+ V(v8_Object_GetPropertyNames) \
+ V(v8_Object_GetRealNamedProperty) \
+ V(v8_Object_GetRealNamedPropertyAttributes) \
+ V(v8_Object_GetRealNamedPropertyAttributesInPrototypeChain) \
+ V(v8_Object_GetRealNamedPropertyInPrototypeChain) \
+ V(v8_Object_HasOwnProperty) \
+ V(v8_Object_HasRealIndexedProperty) \
+ V(v8_Object_HasRealNamedCallbackProperty) \
+ V(v8_Object_HasRealNamedProperty) \
+ V(v8_Object_ObjectProtoToString) \
+ V(v8_Object_Set) \
+ V(v8_Object_SetAccessor) \
+ V(v8_Object_SetIntegrityLevel) \
+ V(v8_Object_SetPrivate) \
+ V(v8_Object_SetPrototype) \
+ V(v8_ObjectTemplate_NewInstance) \
+ V(v8_ScriptCompiler_Compile) \
+ V(v8_ScriptCompiler_CompileFunctionInContext) \
+ V(v8_ScriptCompiler_CompileUnbound) \
+ V(v8_Script_Run) \
+ V(v8_SharedArrayBuffer_New) \
+ V(v8_String_Concat) \
+ V(v8_TryCatch_StackTrace) \
+ V(v8_Uint16Array_New) \
+ V(v8_Uint32Array_New) \
+ V(v8_Uint8Array_New) \
+ V(v8_Uint8ClampedArray_New) \
+ V(v8_UnboundScript_GetId)
+
+#define OTHER_COUNTER(V) \
+ V(AccessorGetterCallback) \
+ V(AccessorNameGetterCallback) \
+ V(AccessorNameSetterCallback) \
+ V(FunctionCallback) \
+ V(GC) \
+ V(GenericNamedPropertyDeleterCallback) \
+ V(GenericNamedPropertyQueryCallback) \
+ V(GenericNamedPropertySetterCallback) \
+ V(IndexedPropertyDeleterCallback) \
+ V(IndexedPropertyGetterCallback) \
+ V(IndexedPropertyQueryCallback) \
+ V(IndexedPropertySetterCallback) \
+ V(InvokeFunctionCallback) \
+ V(JS_Execution) \
+ V(RecompileConcurrent) \
+ V(RecompileSynchronous) \
+ V(DeoptimizeCode) \
+ V(OptimizeCode) \
+ V(CompileFullCode) \
+ V(CompileIgnition) \
+ V(CompileEval) \
+ V(Compile) \
+ V(CompileSerialize) \
+ V(CompileDeserialize) \
+ V(ParseLazy) \
+ V(Parse) \
+ V(CompileCode) \
+ V(PropertyCallback) \
+ V(UnexpectedStubMiss)
+
struct RuntimeCallStats {
- // Dummy counter for the unexpected stub miss.
- RuntimeCallCounter UnexpectedStubMiss =
- RuntimeCallCounter("UnexpectedStubMiss");
- // Counter for runtime callbacks into JavaScript.
- RuntimeCallCounter ExternalCallback = RuntimeCallCounter("ExternalCallback");
- RuntimeCallCounter GC = RuntimeCallCounter("GC");
#define CALL_RUNTIME_COUNTER(name, nargs, ressize) \
RuntimeCallCounter Runtime_##name = RuntimeCallCounter(#name);
FOR_EACH_INTRINSIC(CALL_RUNTIME_COUNTER)
@@ -537,6 +699,14 @@ struct RuntimeCallStats {
RuntimeCallCounter Builtin_##name = RuntimeCallCounter(#name);
BUILTIN_LIST_C(CALL_BUILTIN_COUNTER)
#undef CALL_BUILTIN_COUNTER
+#define CALL_BUILTIN_COUNTER(name) \
+ RuntimeCallCounter API_##name = RuntimeCallCounter("API_" #name);
+ API_COUNTER(CALL_BUILTIN_COUNTER)
+#undef CALL_BUILTIN_COUNTER
+#define CALL_BUILTIN_COUNTER(name) \
+ RuntimeCallCounter name = RuntimeCallCounter(#name);
+ OTHER_COUNTER(CALL_BUILTIN_COUNTER)
+#undef CALL_BUILTIN_COUNTER
// Counter to track recursive time events.
RuntimeCallTimer* current_timer_ = NULL;
« src/api.cc ('K') | « src/compiler.cc ('k') | src/counters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698