| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 #ifndef BASE_PROFILER_SCOPED_PROFILE_H_ | 6 #ifndef BASE_PROFILER_SCOPED_PROFILE_H_ |
| 7 #define BASE_PROFILER_SCOPED_PROFILE_H_ | 7 #define BASE_PROFILER_SCOPED_PROFILE_H_ |
| 8 | 8 |
| 9 //------------------------------------------------------------------------------ | 9 //------------------------------------------------------------------------------ |
| 10 // ScopedProfile provides basic helper functions for profiling a short | 10 // ScopedProfile provides basic helper functions for profiling a short |
| 11 // region of code within a scope. It is separate from the related ThreadData | 11 // region of code within a scope. It is separate from the related ThreadData |
| 12 // class so that it can be included without much other cruft, and provide the | 12 // class so that it can be included without much other cruft, and provide the |
| 13 // macros listed below. | 13 // macros listed below. |
| 14 | 14 |
| 15 #include "base/base_export.h" | 15 #include "base/base_export.h" |
| 16 #include "base/location.h" | 16 #include "base/location.h" |
| 17 #include "base/macros.h" | 17 #include "base/macros.h" |
| 18 #include "base/profiler/tracked_time.h" | |
| 19 #include "base/trace_event/heap_profiler.h" | 18 #include "base/trace_event/heap_profiler.h" |
| 20 #include "base/tracked_objects.h" | 19 #include "base/tracked_objects.h" |
| 21 | 20 |
| 22 // Two level indirection is required for correct macro substitution. | 21 // Two level indirection is required for correct macro substitution. |
| 23 #define PASTE_COUNTER_ON_NAME2(name, counter) name##counter | 22 #define PASTE_COUNTER_ON_NAME2(name, counter) name##counter |
| 24 #define PASTE_COUNTER_ON_NAME(name, counter) \ | 23 #define PASTE_COUNTER_ON_NAME(name, counter) \ |
| 25 PASTE_COUNTER_ON_NAME2(name, counter) | 24 PASTE_COUNTER_ON_NAME2(name, counter) |
| 26 | 25 |
| 27 #define COUNTER_BASED_VARIABLE_NAME_FOR_PROFILING \ | 26 #define COUNTER_BASED_VARIABLE_NAME_FOR_PROFILING \ |
| 28 PASTE_COUNTER_ON_NAME(some_profiler_variable_, __COUNTER__) | 27 PASTE_COUNTER_ON_NAME(some_profiler_variable_, __COUNTER__) |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 private: | 66 private: |
| 68 Births* birth_; // Place in code where tracking started. | 67 Births* birth_; // Place in code where tracking started. |
| 69 TaskStopwatch stopwatch_; | 68 TaskStopwatch stopwatch_; |
| 70 | 69 |
| 71 DISALLOW_COPY_AND_ASSIGN(ScopedProfile); | 70 DISALLOW_COPY_AND_ASSIGN(ScopedProfile); |
| 72 }; | 71 }; |
| 73 | 72 |
| 74 } // namespace tracked_objects | 73 } // namespace tracked_objects |
| 75 | 74 |
| 76 #endif // BASE_PROFILER_SCOPED_PROFILE_H_ | 75 #endif // BASE_PROFILER_SCOPED_PROFILE_H_ |
| OLD | NEW |