| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "content/common/discardable_shared_memory_heap.h" | 5 #include "content/common/discardable_shared_memory_heap.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
| 10 #include "base/memory/discardable_shared_memory.h" | 10 #include "base/memory/discardable_shared_memory.h" |
| (...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 } | 362 } |
| 363 } | 363 } |
| 364 } | 364 } |
| 365 | 365 |
| 366 void DiscardableSharedMemoryHeap::OnMemoryDump( | 366 void DiscardableSharedMemoryHeap::OnMemoryDump( |
| 367 const base::DiscardableSharedMemory* shared_memory, | 367 const base::DiscardableSharedMemory* shared_memory, |
| 368 size_t size, | 368 size_t size, |
| 369 int32_t segment_id, | 369 int32_t segment_id, |
| 370 base::trace_event::ProcessMemoryDump* pmd) { | 370 base::trace_event::ProcessMemoryDump* pmd) { |
| 371 size_t allocated_objects_count = 0; | 371 size_t allocated_objects_count = 0; |
| 372 size_t allocated_objects_blocks = 0; | 372 size_t allocated_objects_size_in_blocks = 0; |
| 373 size_t locked_objects_blocks = 0; | 373 size_t locked_objects_size_in_blocks = 0; |
| 374 size_t offset = | 374 size_t offset = |
| 375 reinterpret_cast<size_t>(shared_memory->memory()) / block_size_; | 375 reinterpret_cast<size_t>(shared_memory->memory()) / block_size_; |
| 376 size_t end = offset + size / block_size_; | 376 size_t end = offset + size / block_size_; |
| 377 while (offset < end) { | 377 while (offset < end) { |
| 378 Span* span = spans_[offset]; | 378 Span* span = spans_[offset]; |
| 379 if (!IsInFreeList(span)) { | 379 if (!IsInFreeList(span)) { |
| 380 allocated_objects_blocks += span->length_; | 380 allocated_objects_size_in_blocks += span->length_; |
| 381 locked_objects_blocks += span->is_locked_ ? span->length_ : 0; | 381 locked_objects_size_in_blocks += span->is_locked_ ? span->length_ : 0; |
| 382 allocated_objects_count++; | 382 allocated_objects_count++; |
| 383 } | 383 } |
| 384 offset += span->length_; | 384 offset += span->length_; |
| 385 } | 385 } |
| 386 size_t allocated_objects_size_in_bytes = | 386 size_t allocated_objects_size_in_bytes = |
| 387 allocated_objects_blocks * block_size_; | 387 allocated_objects_size_in_blocks * block_size_; |
| 388 size_t locked_objects_size_in_bytes = locked_objects_blocks * block_size_; | 388 size_t locked_objects_size_in_bytes = |
| 389 locked_objects_size_in_blocks * block_size_; |
| 389 | 390 |
| 390 std::string segment_dump_name = | 391 std::string segment_dump_name = |
| 391 base::StringPrintf("discardable/segment_%d", segment_id); | 392 base::StringPrintf("discardable/segment_%d", segment_id); |
| 392 base::trace_event::MemoryAllocatorDump* segment_dump = | 393 base::trace_event::MemoryAllocatorDump* segment_dump = |
| 393 pmd->CreateAllocatorDump(segment_dump_name); | 394 pmd->CreateAllocatorDump(segment_dump_name); |
| 394 segment_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, | 395 segment_dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |
| 395 base::trace_event::MemoryAllocatorDump::kUnitsBytes, | 396 base::trace_event::MemoryAllocatorDump::kUnitsBytes, |
| 396 size); | 397 size); |
| 397 | 398 |
| 398 base::trace_event::MemoryAllocatorDump* obj_dump = | 399 base::trace_event::MemoryAllocatorDump* obj_dump = |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 ScopedVector<ScopedMemorySegment>::const_iterator it = | 449 ScopedVector<ScopedMemorySegment>::const_iterator it = |
| 449 std::find_if(memory_segments_.begin(), memory_segments_.end(), | 450 std::find_if(memory_segments_.begin(), memory_segments_.end(), |
| 450 [span](const ScopedMemorySegment* segment) { | 451 [span](const ScopedMemorySegment* segment) { |
| 451 return segment->ContainsSpan(span); | 452 return segment->ContainsSpan(span); |
| 452 }); | 453 }); |
| 453 DCHECK(it != memory_segments_.end()); | 454 DCHECK(it != memory_segments_.end()); |
| 454 return (*it)->CreateMemoryAllocatorDump(span, block_size_, name, pmd); | 455 return (*it)->CreateMemoryAllocatorDump(span, block_size_, name, pmd); |
| 455 } | 456 } |
| 456 | 457 |
| 457 } // namespace content | 458 } // namespace content |
| OLD | NEW |