Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
|
Dmitry Skiba
2016/04/22 05:37:45
2016
ssid
2016/04/22 05:48:27
Done.
| |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef BASE_TRACE_EVENT_HEAP_PROFILER_H | |
| 6 #define BASE_TRACE_EVENT_HEAP_PROFILER_H | |
| 7 | |
| 8 #include "base/trace_event/heap_profiler_allocation_context_tracker.h" | |
| 9 | |
| 10 // This header file defines the set of macros that are used to track memory | |
| 11 // usage in the heap profiler. This is in addition to the macros defined in | |
| 12 // trace_event.h and are specific to heap profiler. This file also defines | |
| 13 // implementation details of these macros. | |
| 14 | |
| 15 // Implementation detail: heap profiler macros create temporary variables to | |
|
Primiano Tucci (use gerrit)
2016/04/22 09:24:50
this is really overkill, you are adding 7 lines, a
ssid
2016/04/22 14:49:06
As I said in earlier mail, this doesn't work.
It p
| |
| 16 // keep instrumentation overhead low. These macros give each temporary variable | |
| 17 // a unique name based on the line number to prevent name collisions. | |
| 18 #define INTERNAL_HEAP_PROFILER_EVENT_UID3(a, b) heap_profiler_unique_##a##b | |
| 19 #define INTERNAL_HEAP_PROFILER_EVENT_UID2(a, b) \ | |
| 20 INTERNAL_HEAP_PROFILER_EVENT_UID3(a, b) | |
| 21 #define INTERNAL_HEAP_PROFILER_EVENT_UID(name_prefix) \ | |
| 22 INTERNAL_HEAP_PROFILER_EVENT_UID2(name_prefix, __LINE__) | |
| 23 | |
| 24 // A scoped ignore event used to tell heap profiler to ignore all the | |
| 25 // allocations in the scope. It is useful to exclude allocations made for | |
| 26 // tracing from the heap profiler dumps. | |
| 27 #define HEAP_PROFILER_SCOPED_IGNORE \ | |
| 28 trace_event_internal::HeapProfilerScopedIgnore \ | |
| 29 INTERNAL_HEAP_PROFILER_EVENT_UID(scoped_ignore); \ | |
|
Dmitry Skiba
2016/04/22 05:37:45
Why do you need this at all, if it's only used onc
ssid
2016/04/22 05:48:27
Yes, but at least the user of this macro doesn't h
Dmitry Skiba
2016/04/22 06:01:20
Actually, wait. Why it's called INTERNAL_HEAP_PROF
ssid
2016/04/22 16:24:49
Done.
| |
| 30 if (UNLIKELY( \ | |
| 31 base::trace_event::AllocationContextTracker::capture_enabled())) \ | |
| 32 base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread() \ | |
| 33 ->begin_ignore_scope() | |
|
Dmitry Skiba
2016/04/22 05:37:45
Wait, why this is not in HeapProfilerScopedIngnore
ssid
2016/04/22 05:48:27
Primiano had suggested that keeping this out reduc
Dmitry Skiba
2016/04/22 06:01:20
How about inline constructor then? Actually, how a
Primiano Tucci (use gerrit)
2016/04/22 09:24:50
inlining both SGTM and might be even cleaner (also
ssid
2016/04/22 16:24:49
Done.
| |
| 34 | |
| 35 namespace trace_event_internal { | |
| 36 | |
| 37 class BASE_EXPORT HeapProfilerScopedIgnore { | |
| 38 public: | |
| 39 HeapProfilerScopedIgnore(); | |
| 40 ~HeapProfilerScopedIgnore(); | |
| 41 }; | |
| 42 | |
| 43 } // namespace trace_event_internal | |
| 44 | |
| 45 #endif // BASE_TRACE_EVENT_HEAP_PROFILER_H | |
| OLD | NEW |