Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Side by Side Diff: base/trace_event/trace_event_argument.cc

Issue 1249643007: Align base::Pickle allocations to 4k boundaries (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@accounting_fix
Patch Set: Nits test Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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/trace_event/trace_event_argument.h" 5 #include "base/trace_event/trace_event_argument.h"
6 6
7 #include "base/bits.h"
7 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
8 #include "base/trace_event/trace_event_memory_overhead.h" 9 #include "base/trace_event/trace_event_memory_overhead.h"
9 #include "base/values.h" 10 #include "base/values.h"
10 11
11 namespace base { 12 namespace base {
12 namespace trace_event { 13 namespace trace_event {
13 14
14 namespace { 15 namespace {
15 const char kTypeStartDict = '{'; 16 const char kTypeStartDict = '{';
16 const char kTypeEndDict = '}'; 17 const char kTypeEndDict = '}';
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 // TODO(primiano): this could be smarter, skip the ToBaseValue encoding and 447 // TODO(primiano): this could be smarter, skip the ToBaseValue encoding and
447 // produce the JSON on its own. This will require refactoring JSONWriter 448 // produce the JSON on its own. This will require refactoring JSONWriter
448 // to decouple the base::Value traversal from the JSON writing bits 449 // to decouple the base::Value traversal from the JSON writing bits
449 std::string tmp; 450 std::string tmp;
450 JSONWriter::Write(*ToBaseValue(), &tmp); 451 JSONWriter::Write(*ToBaseValue(), &tmp);
451 *out += tmp; 452 *out += tmp;
452 } 453 }
453 454
454 void TracedValue::EstimateTraceMemoryOverhead( 455 void TracedValue::EstimateTraceMemoryOverhead(
455 TraceEventMemoryOverhead* overhead) { 456 TraceEventMemoryOverhead* overhead) {
457 const size_t kPickleHeapAlign = 4096; // Must be == Pickle::kPickleHeapAlign.
456 overhead->Add("TracedValue", 458 overhead->Add("TracedValue",
457 pickle_.GetTotalAllocatedSize() /* allocated size */, 459
458 pickle_.size() /* resident size */); 460 /* allocated size */
461 bits::Align(pickle_.GetTotalAllocatedSize(), kPickleHeapAlign),
462
463 /* resident size */
464 bits::Align(pickle_.size(), kPickleHeapAlign));
459 } 465 }
460 466
461 } // namespace trace_event 467 } // namespace trace_event
462 } // namespace base 468 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698