OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "base/debug/trace_event_impl.h" | 5 #include "base/debug/trace_event_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/debug/leak_annotations.h" | 10 #include "base/debug/leak_annotations.h" |
(...skipping 25 matching lines...) Expand all Loading... |
36 public: | 36 public: |
37 static void Delete() { | 37 static void Delete() { |
38 Singleton<base::debug::TraceLog, | 38 Singleton<base::debug::TraceLog, |
39 StaticMemorySingletonTraits<base::debug::TraceLog> >::OnExit(0); | 39 StaticMemorySingletonTraits<base::debug::TraceLog> >::OnExit(0); |
40 } | 40 } |
41 }; | 41 }; |
42 | 42 |
43 // Not supported in split-dll build. http://crbug.com/237249 | 43 // Not supported in split-dll build. http://crbug.com/237249 |
44 #if !defined(CHROME_SPLIT_DLL) | 44 #if !defined(CHROME_SPLIT_DLL) |
45 // The thread buckets for the sampling profiler. | 45 // The thread buckets for the sampling profiler. |
46 BASE_EXPORT TRACE_EVENT_API_ATOMIC_WORD g_trace_state0; | 46 BASE_EXPORT TRACE_EVENT_API_ATOMIC_WORD g_trace_state[3]; |
47 BASE_EXPORT TRACE_EVENT_API_ATOMIC_WORD g_trace_state1; | |
48 BASE_EXPORT TRACE_EVENT_API_ATOMIC_WORD g_trace_state2; | |
49 #endif | 47 #endif |
50 | 48 |
51 namespace base { | 49 namespace base { |
52 namespace debug { | 50 namespace debug { |
53 | 51 |
54 // Controls the number of trace events we will buffer in-memory | 52 // Controls the number of trace events we will buffer in-memory |
55 // before throwing them away. | 53 // before throwing them away. |
56 const size_t kTraceEventBufferSize = 500000; | 54 const size_t kTraceEventBufferSize = 500000; |
57 const size_t kTraceEventBatchSize = 1000; | 55 const size_t kTraceEventBatchSize = 1000; |
58 const size_t kTraceEventInitialBufferSize = 1024; | 56 const size_t kTraceEventInitialBufferSize = 1024; |
(...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
941 num_traces_recorded_++; | 939 num_traces_recorded_++; |
942 | 940 |
943 category_filter_ = CategoryFilter(category_filter); | 941 category_filter_ = CategoryFilter(category_filter); |
944 EnableIncludedCategoryGroups(); | 942 EnableIncludedCategoryGroups(); |
945 | 943 |
946 // Not supported in split-dll build. http://crbug.com/237249 | 944 // Not supported in split-dll build. http://crbug.com/237249 |
947 #if !defined(CHROME_SPLIT_DLL) | 945 #if !defined(CHROME_SPLIT_DLL) |
948 if (options & ENABLE_SAMPLING) { | 946 if (options & ENABLE_SAMPLING) { |
949 sampling_thread_.reset(new TraceSamplingThread); | 947 sampling_thread_.reset(new TraceSamplingThread); |
950 sampling_thread_->RegisterSampleBucket( | 948 sampling_thread_->RegisterSampleBucket( |
951 &g_trace_state0, | 949 &g_trace_state[0], |
952 "bucket0", | 950 "bucket0", |
953 Bind(&TraceSamplingThread::DefaultSampleCallback)); | 951 Bind(&TraceSamplingThread::DefaultSampleCallback)); |
954 sampling_thread_->RegisterSampleBucket( | 952 sampling_thread_->RegisterSampleBucket( |
955 &g_trace_state1, | 953 &g_trace_state[1], |
956 "bucket1", | 954 "bucket1", |
957 Bind(&TraceSamplingThread::DefaultSampleCallback)); | 955 Bind(&TraceSamplingThread::DefaultSampleCallback)); |
958 sampling_thread_->RegisterSampleBucket( | 956 sampling_thread_->RegisterSampleBucket( |
959 &g_trace_state2, | 957 &g_trace_state[2], |
960 "bucket2", | 958 "bucket2", |
961 Bind(&TraceSamplingThread::DefaultSampleCallback)); | 959 Bind(&TraceSamplingThread::DefaultSampleCallback)); |
962 if (!PlatformThread::Create( | 960 if (!PlatformThread::Create( |
963 0, sampling_thread_.get(), &sampling_thread_handle_)) { | 961 0, sampling_thread_.get(), &sampling_thread_handle_)) { |
964 DCHECK(false) << "failed to create thread"; | 962 DCHECK(false) << "failed to create thread"; |
965 } | 963 } |
966 } | 964 } |
967 #endif | 965 #endif |
968 | 966 |
969 dispatching_to_observer_list_ = true; | 967 dispatching_to_observer_list_ = true; |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1549 0, // num_args | 1547 0, // num_args |
1550 NULL, // arg_names | 1548 NULL, // arg_names |
1551 NULL, // arg_types | 1549 NULL, // arg_types |
1552 NULL, // arg_values | 1550 NULL, // arg_values |
1553 NULL, // convertable values | 1551 NULL, // convertable values |
1554 TRACE_EVENT_FLAG_NONE); // flags | 1552 TRACE_EVENT_FLAG_NONE); // flags |
1555 } | 1553 } |
1556 } | 1554 } |
1557 | 1555 |
1558 } // namespace trace_event_internal | 1556 } // namespace trace_event_internal |
OLD | NEW |