| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 #ifdef ENABLE_LOGGING_AND_PROFILING | 80 #ifdef ENABLE_LOGGING_AND_PROFILING |
| 81 #define LOG(Call) \ | 81 #define LOG(Call) \ |
| 82 do { \ | 82 do { \ |
| 83 if (v8::internal::Logger::is_logging()) \ | 83 if (v8::internal::Logger::is_logging()) \ |
| 84 v8::internal::Logger::Call; \ | 84 v8::internal::Logger::Call; \ |
| 85 } while (false) | 85 } while (false) |
| 86 #else | 86 #else |
| 87 #define LOG(Call) ((void) 0) | 87 #define LOG(Call) ((void) 0) |
| 88 #endif | 88 #endif |
| 89 | 89 |
| 90 #define LOG_EVENTS_AND_TAGS_LIST(V) \ | 90 #define LOG_EVENTS_AND_TAGS_LIST_NO_NATIVES(V) \ |
| 91 V(CODE_CREATION_EVENT, "code-creation", "cc") \ | 91 V(CODE_CREATION_EVENT, "code-creation", "cc") \ |
| 92 V(CODE_MOVE_EVENT, "code-move", "cm") \ | 92 V(CODE_MOVE_EVENT, "code-move", "cm") \ |
| 93 V(CODE_DELETE_EVENT, "code-delete", "cd") \ | 93 V(CODE_DELETE_EVENT, "code-delete", "cd") \ |
| 94 V(FUNCTION_CREATION_EVENT, "function-creation", "fc") \ | 94 V(FUNCTION_CREATION_EVENT, "function-creation", "fc") \ |
| 95 V(FUNCTION_MOVE_EVENT, "function-move", "fm") \ | 95 V(FUNCTION_MOVE_EVENT, "function-move", "fm") \ |
| 96 V(FUNCTION_DELETE_EVENT, "function-delete", "fd") \ | 96 V(FUNCTION_DELETE_EVENT, "function-delete", "fd") \ |
| 97 V(SNAPSHOT_POSITION_EVENT, "snapshot-pos", "sp") \ | 97 V(SNAPSHOT_POSITION_EVENT, "snapshot-pos", "sp") \ |
| 98 V(TICK_EVENT, "tick", "t") \ | 98 V(TICK_EVENT, "tick", "t") \ |
| 99 V(REPEAT_META_EVENT, "repeat", "r") \ | 99 V(REPEAT_META_EVENT, "repeat", "r") \ |
| 100 V(BUILTIN_TAG, "Builtin", "bi") \ | 100 V(BUILTIN_TAG, "Builtin", "bi") \ |
| (...skipping 10 matching lines...) Expand all Loading... |
| 111 V(FUNCTION_TAG, "Function", "f") \ | 111 V(FUNCTION_TAG, "Function", "f") \ |
| 112 V(KEYED_LOAD_IC_TAG, "KeyedLoadIC", "klic") \ | 112 V(KEYED_LOAD_IC_TAG, "KeyedLoadIC", "klic") \ |
| 113 V(KEYED_STORE_IC_TAG, "KeyedStoreIC", "ksic") \ | 113 V(KEYED_STORE_IC_TAG, "KeyedStoreIC", "ksic") \ |
| 114 V(LAZY_COMPILE_TAG, "LazyCompile", "lc") \ | 114 V(LAZY_COMPILE_TAG, "LazyCompile", "lc") \ |
| 115 V(LOAD_IC_TAG, "LoadIC", "lic") \ | 115 V(LOAD_IC_TAG, "LoadIC", "lic") \ |
| 116 V(REG_EXP_TAG, "RegExp", "re") \ | 116 V(REG_EXP_TAG, "RegExp", "re") \ |
| 117 V(SCRIPT_TAG, "Script", "sc") \ | 117 V(SCRIPT_TAG, "Script", "sc") \ |
| 118 V(STORE_IC_TAG, "StoreIC", "sic") \ | 118 V(STORE_IC_TAG, "StoreIC", "sic") \ |
| 119 V(STUB_TAG, "Stub", "s") | 119 V(STUB_TAG, "Stub", "s") |
| 120 | 120 |
| 121 #ifdef ENABLE_CPP_PROFILES_PROCESSOR |
| 122 // Add 'NATIVE_' cases for functions and scripts, but map them to |
| 123 // original tags when writing to the log. |
| 124 #define LOG_EVENTS_AND_TAGS_LIST(V) \ |
| 125 LOG_EVENTS_AND_TAGS_LIST_NO_NATIVES(V) \ |
| 126 V(NATIVE_FUNCTION_TAG, "Function", "f") \ |
| 127 V(NATIVE_LAZY_COMPILE_TAG, "LazyCompile", "lc") \ |
| 128 V(NATIVE_SCRIPT_TAG, "Script", "sc") |
| 129 #else |
| 130 #define LOG_EVENTS_AND_TAGS_LIST(V) LOG_EVENTS_AND_TAGS_LIST_NO_NATIVES(V) |
| 131 #endif |
| 132 |
| 121 class Logger { | 133 class Logger { |
| 122 public: | 134 public: |
| 123 #define DECLARE_ENUM(enum_item, ignore1, ignore2) enum_item, | 135 #define DECLARE_ENUM(enum_item, ignore1, ignore2) enum_item, |
| 124 enum LogEventsAndTags { | 136 enum LogEventsAndTags { |
| 125 LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM) | 137 LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM) |
| 126 NUMBER_OF_LOG_EVENTS | 138 NUMBER_OF_LOG_EVENTS |
| 127 #ifdef ENABLE_CPP_PROFILES_PROCESSOR | |
| 128 , NATIVE_FUNCTION_TAG | |
| 129 , NATIVE_LAZY_COMPILE_TAG | |
| 130 , NATIVE_SCRIPT_TAG | |
| 131 #endif | |
| 132 }; | 139 }; |
| 133 #undef DECLARE_ENUM | 140 #undef DECLARE_ENUM |
| 134 | 141 |
| 135 // Acquires resources for logging if the right flags are set. | 142 // Acquires resources for logging if the right flags are set. |
| 136 static bool Setup(); | 143 static bool Setup(); |
| 137 | 144 |
| 138 // Frees resources acquired in Setup. | 145 // Frees resources acquired in Setup. |
| 139 static void TearDown(); | 146 static void TearDown(); |
| 140 | 147 |
| 141 // Enable the computation of a sliding window of states. | 148 // Enable the computation of a sliding window of states. |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 #endif | 365 #endif |
| 359 }; | 366 }; |
| 360 | 367 |
| 361 | 368 |
| 362 // Class that extracts stack trace, used for profiling. | 369 // Class that extracts stack trace, used for profiling. |
| 363 class StackTracer : public AllStatic { | 370 class StackTracer : public AllStatic { |
| 364 public: | 371 public: |
| 365 static void Trace(TickSample* sample); | 372 static void Trace(TickSample* sample); |
| 366 }; | 373 }; |
| 367 | 374 |
| 368 | |
| 369 #ifdef ENABLE_CPP_PROFILES_PROCESSOR | |
| 370 | |
| 371 class Ticker: public Sampler { | |
| 372 public: | |
| 373 explicit Ticker(int interval): | |
| 374 Sampler(interval, FLAG_prof) {} | |
| 375 | |
| 376 void SampleStack(TickSample* sample) { | |
| 377 StackTracer::Trace(sample); | |
| 378 } | |
| 379 void Tick(TickSample* sample) { } | |
| 380 void SetWindow(SlidingStateWindow* window) { } | |
| 381 void ClearWindow() { } | |
| 382 void SetProfiler(Profiler* profiler) { } | |
| 383 void ClearProfiler() { } | |
| 384 }; | |
| 385 | |
| 386 #endif // ENABLE_CPP_PROFILES_PROCESSOR | |
| 387 | |
| 388 } } // namespace v8::internal | 375 } } // namespace v8::internal |
| 389 | 376 |
| 390 | 377 |
| 391 #endif // V8_LOG_H_ | 378 #endif // V8_LOG_H_ |
| OLD | NEW |