| Index: base/debug/trace_event_impl.cc
|
| diff --git a/base/debug/trace_event_impl.cc b/base/debug/trace_event_impl.cc
|
| index cc22424f15e505c96dac6cdc356b404be6e87406..b85aeca3b8f1663eff414f8760a04aa2a1c7771f 100644
|
| --- a/base/debug/trace_event_impl.cc
|
| +++ b/base/debug/trace_event_impl.cc
|
| @@ -50,7 +50,8 @@ namespace debug {
|
|
|
| // Controls the number of trace events we will buffer in-memory
|
| // before throwing them away.
|
| -const size_t kTraceEventBufferSize = 500000;
|
| +const size_t kTraceEventVectorBufferSize = 250000;
|
| +const size_t kTraceEventRingBufferSize = kTraceEventVectorBufferSize / 4;
|
| const size_t kTraceEventBatchSize = 1000;
|
| const size_t kTraceEventInitialBufferSize = 1024;
|
|
|
| @@ -88,13 +89,6 @@ const char kRecordUntilFull[] = "record-until-full";
|
| const char kRecordContinuously[] = "record-continuously";
|
| const char kEnableSampling[] = "enable-sampling";
|
|
|
| -size_t NextIndex(size_t index) {
|
| - index++;
|
| - if (index >= kTraceEventBufferSize)
|
| - index = 0;
|
| - return index;
|
| -}
|
| -
|
| } // namespace
|
|
|
| class TraceBufferRingBuffer : public TraceBuffer {
|
| @@ -160,7 +154,18 @@ class TraceBufferRingBuffer : public TraceBuffer {
|
| return logged_events_.size();
|
| }
|
|
|
| + virtual size_t Capacity() const OVERRIDE {
|
| + return kTraceEventRingBufferSize;
|
| + }
|
| +
|
| private:
|
| + static size_t NextIndex(size_t index) {
|
| + index++;
|
| + if (index >= kTraceEventRingBufferSize)
|
| + index = 0;
|
| + return index;
|
| + }
|
| +
|
| size_t unused_event_index_;
|
| size_t oldest_event_index_;
|
| std::vector<TraceEvent> logged_events_;
|
| @@ -196,7 +201,7 @@ class TraceBufferVector : public TraceBuffer {
|
| }
|
|
|
| virtual bool IsFull() const OVERRIDE {
|
| - return Size() >= kTraceEventBufferSize;
|
| + return Size() >= kTraceEventVectorBufferSize;
|
| }
|
|
|
| virtual size_t CountEnabledByName(
|
| @@ -222,6 +227,10 @@ class TraceBufferVector : public TraceBuffer {
|
| return logged_events_.size();
|
| }
|
|
|
| + virtual size_t Capacity() const OVERRIDE {
|
| + return kTraceEventVectorBufferSize;
|
| + }
|
| +
|
| private:
|
| size_t current_iteration_index_;
|
| std::vector<TraceEvent> logged_events_;
|
| @@ -251,6 +260,9 @@ class TraceBufferDiscardsEvents : public TraceBuffer {
|
|
|
| virtual size_t Size() const OVERRIDE { return 0; }
|
|
|
| + // As this buffer is never full, we can return any positive number.
|
| + virtual size_t Capacity() const OVERRIDE { return 1; }
|
| +
|
| virtual const TraceEvent& GetEventAt(size_t index) const OVERRIDE {
|
| NOTREACHED();
|
| return *static_cast<TraceEvent*>(NULL);
|
| @@ -1088,7 +1100,8 @@ bool TraceLog::HasEnabledStateObserver(EnabledStateObserver* listener) const {
|
| }
|
|
|
| float TraceLog::GetBufferPercentFull() const {
|
| - return (float)((double)logged_events_->Size()/(double)kTraceEventBufferSize);
|
| + return static_cast<float>(static_cast<double>(logged_events_->Size()) /
|
| + logged_events_->Capacity());
|
| }
|
|
|
| void TraceLog::SetNotificationCallback(
|
|
|