diff options
author | yurys <yurys@chromium.org> | 2014-11-17 02:57:56 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-17 10:58:26 +0000 |
commit | d57ba6fe68ea4b8bfbdc403ea7b3a3e74e38b03f (patch) | |
tree | e651b362c50989a2ea343ed39904090da75e0f9e /base | |
parent | 5f52b6d2c2476159c45f2d5c53df336824c057e0 (diff) | |
download | chromium_src-d57ba6fe68ea4b8bfbdc403ea7b3a3e74e38b03f.zip chromium_src-d57ba6fe68ea4b8bfbdc403ea7b3a3e74e38b03f.tar.gz chromium_src-d57ba6fe68ea4b8bfbdc403ea7b3a3e74e38b03f.tar.bz2 |
Report trace buffer usage as number of events, not only percentage
The total event count will be used later to show progress indicator when retrieving recorded events. The progress will be estimated as total events received divided by total buffer size.
BUG=426117
Review URL: https://codereview.chromium.org/717083003
Cr-Commit-Position: refs/heads/master@{#304404}
Diffstat (limited to 'base')
-rw-r--r-- | base/debug/trace_event_impl.cc | 14 | ||||
-rw-r--r-- | base/debug/trace_event_impl.h | 10 | ||||
-rw-r--r-- | base/debug/trace_event_unittest.cc | 9 |
3 files changed, 22 insertions, 11 deletions
diff --git a/base/debug/trace_event_impl.cc b/base/debug/trace_event_impl.cc index ce62766..1a64eb0 100644 --- a/base/debug/trace_event_impl.cc +++ b/base/debug/trace_event_impl.cc @@ -1185,6 +1185,12 @@ void TraceLog::ThreadLocalEventBuffer::FlushWhileLocked() { // find the generation mismatch and delete this buffer soon. } +TraceLogStatus::TraceLogStatus() : event_capacity(0), event_count(0) { +} + +TraceLogStatus::~TraceLogStatus() { +} + // static TraceLog* TraceLog::GetInstance() { return Singleton<TraceLog, LeakySingletonTraits<TraceLog> >::get(); @@ -1586,10 +1592,12 @@ bool TraceLog::HasEnabledStateObserver(EnabledStateObserver* listener) const { return it != enabled_state_observer_list_.end(); } -float TraceLog::GetBufferPercentFull() const { +TraceLogStatus TraceLog::GetStatus() const { AutoLock lock(lock_); - return static_cast<float>(static_cast<double>(logged_events_->Size()) / - logged_events_->Capacity()); + TraceLogStatus result; + result.event_capacity = logged_events_->Capacity(); + result.event_count = logged_events_->Size(); + return result; } bool TraceLog::BufferIsFull() const { diff --git a/base/debug/trace_event_impl.h b/base/debug/trace_event_impl.h index 6075e2d..ce2e017 100644 --- a/base/debug/trace_event_impl.h +++ b/base/debug/trace_event_impl.h @@ -420,6 +420,13 @@ struct BASE_EXPORT TraceOptions { bool enable_systrace; }; +struct BASE_EXPORT TraceLogStatus { + TraceLogStatus(); + ~TraceLogStatus(); + size_t event_capacity; + size_t event_count; +}; + class BASE_EXPORT TraceLog { public: enum Mode { @@ -495,7 +502,7 @@ class BASE_EXPORT TraceLog { void RemoveEnabledStateObserver(EnabledStateObserver* listener); bool HasEnabledStateObserver(EnabledStateObserver* listener) const; - float GetBufferPercentFull() const; + TraceLogStatus GetStatus() const; bool BufferIsFull() const; // Not using base::Callback because of its limited by 7 parameters. @@ -603,7 +610,6 @@ class BASE_EXPORT TraceLog { static void DeleteForTesting(); // Allow tests to inspect TraceEvents. - size_t GetEventsSize() const { return logged_events_->Size(); } TraceEvent* GetEventByHandle(TraceEventHandle handle); void SetProcessID(int process_id); diff --git a/base/debug/trace_event_unittest.cc b/base/debug/trace_event_unittest.cc index 69b5743..0904954 100644 --- a/base/debug/trace_event_unittest.cc +++ b/base/debug/trace_event_unittest.cc @@ -1366,8 +1366,7 @@ TEST_F(TraceEventTestFixture, AsyncBeginEndPointerMangling) { TEST_F(TraceEventTestFixture, StaticStringVsString) { TraceLog* tracer = TraceLog::GetInstance(); // Make sure old events are flushed: - EndTraceAndFlush(); - EXPECT_EQ(0u, tracer->GetEventsSize()); + EXPECT_EQ(0u, tracer->GetStatus().event_count); const unsigned char* category_group_enabled = TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED("cat"); @@ -1384,8 +1383,7 @@ TEST_F(TraceEventTestFixture, StaticStringVsString) { TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", 0, 0, "arg1", TRACE_STR_COPY("argval"), "arg2", TRACE_STR_COPY("argval")); - size_t num_events = tracer->GetEventsSize(); - EXPECT_GT(num_events, 1u); + EXPECT_GT(tracer->GetStatus().event_count, 1u); const TraceEvent* event1 = tracer->GetEventByHandle(handle1); const TraceEvent* event2 = tracer->GetEventByHandle(handle2); ASSERT_TRUE(event1); @@ -1414,8 +1412,7 @@ TEST_F(TraceEventTestFixture, StaticStringVsString) { TRACE_EVENT_PHASE_INSTANT, category_group_enabled, "name2", 0, 0, "arg1", TRACE_STR_COPY(str1), "arg2", TRACE_STR_COPY(str2)); - size_t num_events = tracer->GetEventsSize(); - EXPECT_GT(num_events, 1u); + EXPECT_GT(tracer->GetStatus().event_count, 1u); const TraceEvent* event1 = tracer->GetEventByHandle(handle1); const TraceEvent* event2 = tracer->GetEventByHandle(handle2); ASSERT_TRUE(event1); |