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

Side by Side Diff: ui/android/resources/resource_manager_impl.cc

Issue 2440393002: [tracing] Implement composable memory usage estimators. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « ui/android/resources/resource_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "ui/android/resources/resource_manager_impl.h" 5 #include "ui/android/resources/resource_manager_impl.h"
6 6
7 #include <inttypes.h> 7 #include <inttypes.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/android/jni_array.h" 13 #include "base/android/jni_array.h"
14 #include "base/android/jni_string.h" 14 #include "base/android/jni_string.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
17 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
18 #include "base/trace_event/estimate_memory_usage.h"
18 #include "base/trace_event/memory_dump_manager.h" 19 #include "base/trace_event/memory_dump_manager.h"
19 #include "base/trace_event/process_memory_dump.h" 20 #include "base/trace_event/process_memory_dump.h"
20 #include "base/trace_event/trace_event.h" 21 #include "base/trace_event/trace_event.h"
21 #include "cc/resources/scoped_ui_resource.h" 22 #include "cc/resources/scoped_ui_resource.h"
22 #include "cc/resources/ui_resource_manager.h" 23 #include "cc/resources/ui_resource_manager.h"
23 #include "jni/ResourceManager_jni.h" 24 #include "jni/ResourceManager_jni.h"
24 #include "third_party/skia/include/core/SkBitmap.h" 25 #include "third_party/skia/include/core/SkBitmap.h"
25 #include "third_party/skia/include/core/SkCanvas.h" 26 #include "third_party/skia/include/core/SkCanvas.h"
26 #include "third_party/skia/include/core/SkColorFilter.h" 27 #include "third_party/skia/include/core/SkColorFilter.h"
27 #include "ui/android/resources/ui_resource_provider.h" 28 #include "ui/android/resources/ui_resource_provider.h"
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 sprite_rect_source, sprite_rect_destination)); 294 sprite_rect_source, sprite_rect_destination));
294 } 295 }
295 src_dst_rects.push_back(frame_src_dst_rects); 296 src_dst_rects.push_back(frame_src_dst_rects);
296 } 297 }
297 return src_dst_rects; 298 return src_dst_rects;
298 } 299 }
299 300
300 bool ResourceManagerImpl::OnMemoryDump( 301 bool ResourceManagerImpl::OnMemoryDump(
301 const base::trace_event::MemoryDumpArgs& args, 302 const base::trace_event::MemoryDumpArgs& args,
302 base::trace_event::ProcessMemoryDump* pmd) { 303 base::trace_event::ProcessMemoryDump* pmd) {
303 size_t size = 0; 304 using base::trace_event::EstimateMemoryUsage;
304 for (const auto& resource_map : resources_) { 305 size_t memory_usage = EstimateMemoryUsage(resources_) +
305 for (const auto& id_and_resource : resource_map) { 306 EstimateMemoryUsage(crushed_sprite_resources_) +
306 if (id_and_resource.second && id_and_resource.second->ui_resource) 307 EstimateMemoryUsage(tinted_resources_);
307 size += id_and_resource.second->ui_resource->GetAllocatedSizeInBytes();
308 }
309 }
310 for (const auto& id_and_resource : crushed_sprite_resources_) {
311 if (id_and_resource.second)
312 size += id_and_resource.second->GetAllocatedSizeInBytes();
313 }
314 for (const auto& color_and_resources : tinted_resources_) {
315 for (const auto& id_and_resource : *color_and_resources.second) {
316 if (id_and_resource.second && id_and_resource.second->ui_resource)
317 size += id_and_resource.second->ui_resource->GetAllocatedSizeInBytes();
318 }
319 }
320 308
321 base::trace_event::MemoryAllocatorDump* dump = pmd->CreateAllocatorDump( 309 base::trace_event::MemoryAllocatorDump* dump = pmd->CreateAllocatorDump(
322 base::StringPrintf("ui/resource_manager_0x%" PRIXPTR, 310 base::StringPrintf("ui/resource_manager_0x%" PRIXPTR,
323 reinterpret_cast<uintptr_t>(this))); 311 reinterpret_cast<uintptr_t>(this)));
324 dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, 312 dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize,
325 base::trace_event::MemoryAllocatorDump::kUnitsBytes, size); 313 base::trace_event::MemoryAllocatorDump::kUnitsBytes,
314 memory_usage);
326 315
327 // Bitmaps are allocated from malloc.
328 const char* system_allocator_name = 316 const char* system_allocator_name =
329 base::trace_event::MemoryDumpManager::GetInstance() 317 base::trace_event::MemoryDumpManager::GetInstance()
330 ->system_allocator_pool_name(); 318 ->system_allocator_pool_name();
331 if (system_allocator_name) { 319 if (system_allocator_name) {
332 pmd->AddSuballocation(dump->guid(), system_allocator_name); 320 pmd->AddSuballocation(dump->guid(), system_allocator_name);
333 } 321 }
334 322
335 return true; 323 return true;
336 } 324 }
337 325
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 TRACE_EVENT2("ui", 367 TRACE_EVENT2("ui",
380 "ResourceManagerImpl::RequestCrushedSpriteResourceFromJava", 368 "ResourceManagerImpl::RequestCrushedSpriteResourceFromJava",
381 "bitmap_res_id", bitmap_res_id, 369 "bitmap_res_id", bitmap_res_id,
382 "metadata_res_id", metadata_res_id); 370 "metadata_res_id", metadata_res_id);
383 Java_ResourceManager_crushedSpriteResourceRequested( 371 Java_ResourceManager_crushedSpriteResourceRequested(
384 base::android::AttachCurrentThread(), java_obj_, bitmap_res_id, 372 base::android::AttachCurrentThread(), java_obj_, bitmap_res_id,
385 metadata_res_id, reloading); 373 metadata_res_id, reloading);
386 } 374 }
387 375
388 } // namespace ui 376 } // namespace ui
OLDNEW
« no previous file with comments | « ui/android/resources/resource_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698