New issue
Advanced search Search tips

Issue 885293 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Resource Coordinator: Empty the working set of frozen renderers

Project Member Reported by fdoray@chromium.org, Sep 18

Issue description

We should experiment with emptying the working set of renderers in which all frames are frozen. 

Benefits:
- We can observe how quickly the working set grows after being emptied and use that to know how good we are at not touching memory when frozen.
- We (hope) that emptying the working set will hint the OS that pages can be compressed and/or swapped, and that this will reduce memory pressure. 
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a558178ae81a5d4fa5f1de3adc28f79fa981bf2

commit 6a558178ae81a5d4fa5f1de3adc28f79fa981bf2
Author: Francois Doray <fdoray@chromium.org>
Date: Fri Sep 21 18:42:19 2018

RC: Add FrameCoordinationUnitImpl::lifecycle_state().

Instead of storing the lifecycle state in a property, store it in a
typed member and provided a typed accessor. This will simplify code
that empties the working set of renderers in which all frames are
frozen (upcoming CL).

Bug: 885293
Change-Id: Ic414071efa6c5994501948173600c51a7651b2e9
Reviewed-on: https://chromium-review.googlesource.com/1232016
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593274}
[modify] https://crrev.com/6a558178ae81a5d4fa5f1de3adc28f79fa981bf2/services/resource_coordinator/coordination_unit/frame_coordination_unit_impl.cc
[modify] https://crrev.com/6a558178ae81a5d4fa5f1de3adc28f79fa981bf2/services/resource_coordinator/coordination_unit/frame_coordination_unit_impl.h
[modify] https://crrev.com/6a558178ae81a5d4fa5f1de3adc28f79fa981bf2/services/resource_coordinator/coordination_unit/frame_coordination_unit_impl_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0657641ac34869d5f5c383387fc7a784dbe76c3b

commit 0657641ac34869d5f5c383387fc7a784dbe76c3b
Author: Francois Doray <fdoray@chromium.org>
Date: Mon Sep 24 20:32:07 2018

RC: Remove ProcessCoordinationUnit::RemoveFrame().

A FrameCoordinationUnit is never removed from a ProcessCoordinationUnit
through this mojo method. What happens instead is that when a frame is
deleted, the corresponding FrameCoordinationUnitImpl is destroyed. In
its destructor, the FrameCoordinationUnitImpl remove itself from its
parent ProcessCoordinationUnitImpl without going through mojo.

Bug: 885293
Change-Id: Ief70ddd0b979ca97fe822a9405899cf3bdfc8aba
Reviewed-on: https://chromium-review.googlesource.com/1234896
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593663}
[modify] https://crrev.com/0657641ac34869d5f5c383387fc7a784dbe76c3b/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.cc
[modify] https://crrev.com/0657641ac34869d5f5c383387fc7a784dbe76c3b/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h
[modify] https://crrev.com/0657641ac34869d5f5c383387fc7a784dbe76c3b/services/resource_coordinator/public/cpp/process_resource_coordinator.cc
[modify] https://crrev.com/0657641ac34869d5f5c383387fc7a784dbe76c3b/services/resource_coordinator/public/cpp/process_resource_coordinator.h
[modify] https://crrev.com/0657641ac34869d5f5c383387fc7a784dbe76c3b/services/resource_coordinator/public/mojom/coordination_unit.mojom

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff82e68b55400a78614d3b6fd83c7f62e8a2c30f

commit ff82e68b55400a78614d3b6fd83c7f62e8a2c30f
Author: Francois Doray <fdoray@chromium.org>
Date: Tue Sep 25 13:22:08 2018

RC: Do not support removing a frame from a process multiple times.

A FrameCoordinationUnitImpl only removes itself from its
ProcessCoordinationUnitImpl from its destructor, which can only run
once. Instead of supporting a frame being removed multiples times
in ProcessCoordinationUnitImpl, this CL DCHECKs if that happens.

Bug: 885293
Change-Id: I9699dd8ed75b723c66fb30059a63840e163a0709
Reviewed-on: https://chromium-review.googlesource.com/1234963
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593910}
[modify] https://crrev.com/ff82e68b55400a78614d3b6fd83c7f62e8a2c30f/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.cc
[modify] https://crrev.com/ff82e68b55400a78614d3b6fd83c7f62e8a2c30f/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db9e28d64214d54366c7f10a5cb827844b178ba8

commit db9e28d64214d54366c7f10a5cb827844b178ba8
Author: Francois Doray <fdoray@chromium.org>
Date: Tue Sep 25 15:24:35 2018

RC: Remove FrameCoordinationUnitImpl from ProcessCoordinationUnitImpl friends.

Instead of making every class in the graph friend of every other class
in the graph, it makes more sense to expose public interfaces.

Bug: 885293
Change-Id: I6fba10e6bd804b4be5c1532a201af90abb744d8b
Reviewed-on: https://chromium-review.googlesource.com/1234227
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593942}
[modify] https://crrev.com/db9e28d64214d54366c7f10a5cb827844b178ba8/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.cc
[modify] https://crrev.com/db9e28d64214d54366c7f10a5cb827844b178ba8/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/122bc67525a6fba57b7addc94957d0577ca654ac

commit 122bc67525a6fba57b7addc94957d0577ca654ac
Author: Francois Doray <fdoray@chromium.org>
Date: Tue Sep 25 18:18:58 2018

RC: Add CoordinationUnitGraphObserver::OnAllFramesInProcessFrozen().

This method is invoked when all the frames in a process are frozen. In
an upcoming CL, we will empty the working set of a process when all its
frames are frozen.

Bug: 885293
Change-Id: I3f3d15ccb605d47f71cbfb30dd8e88121c70dbe2
Reviewed-on: https://chromium-review.googlesource.com/1236461
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594011}
[modify] https://crrev.com/122bc67525a6fba57b7addc94957d0577ca654ac/services/resource_coordinator/coordination_unit/frame_coordination_unit_impl.cc
[modify] https://crrev.com/122bc67525a6fba57b7addc94957d0577ca654ac/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.cc
[modify] https://crrev.com/122bc67525a6fba57b7addc94957d0577ca654ac/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h
[modify] https://crrev.com/122bc67525a6fba57b7addc94957d0577ca654ac/services/resource_coordinator/coordination_unit/process_coordination_unit_impl_unittest.cc
[modify] https://crrev.com/122bc67525a6fba57b7addc94957d0577ca654ac/services/resource_coordinator/observers/coordination_unit_graph_observer.h

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d131534d96bcd0344b5b3d44c737de178df8f15

commit 7d131534d96bcd0344b5b3d44c737de178df8f15
Author: Francois Doray <fdoray@chromium.org>
Date: Sun Oct 21 03:54:47 2018

Base: Replace CurrentProcessInfo::CreationTime() with Process::CreationTime().

The new API supports getting the creation time of any process (not just
the current process).

This will be used to get a (pid, creation time) pair identifying a
renderer process and sending it to the resource coordinator service
via Mojo. Ideally, we would send a process handle, but this is not
supported by Mojo, and if it was, it would have undesirable security
implications.

Bug: 885293
Change-Id: Ic3a24c93e5352767eb8e6fb025eeacdbc0d23109
Reviewed-on: https://chromium-review.googlesource.com/c/1273607
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601423}
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/BUILD.gn
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process.h
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_fuchsia.cc
[rename] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_info.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_info.h
[delete] https://crrev.com/c7e36b09013c046e265d70dfed0ca40b73bc23da/base/process/process_info_linux.cc
[delete] https://crrev.com/c7e36b09013c046e265d70dfed0ca40b73bc23da/base/process/process_info_mac.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_info_win.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_linux.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_mac.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_unittest.cc
[modify] https://crrev.com/7d131534d96bcd0344b5b3d44c737de178df8f15/base/process/process_win.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/884da029983917d68a89dd7e127a93dd9724e2d3

commit 884da029983917d68a89dd7e127a93dd9724e2d3
Author: Francois Doray <fdoray@chromium.org>
Date: Tue Oct 30 23:45:58 2018

Content: Store a base::Process instead of a handle in ChildProcessData.

Benefits:
- No need to create a one-off base::Process instance, which involves
  duplicating the handle, to perform operations on the process.
     Existing use case: https://chromium-review.googlesource.com/c/chromium/src/+/1298345/6/chrome/browser/ui/hung_plugin_tab_helper.cc
     Upcoming use case: https://chromium-review.googlesource.com/c/chromium/src/+/1273257
- No need to use #ifdef in child_process_data.h/.cc.
- Less lines of codes overall.

Bug: 885293
Change-Id: I5f3434c1b0dc3985733764931d9d791dd60f2589
Reviewed-on: https://chromium-review.googlesource.com/c/1298345
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: David Trainor <dtrainor@chromium.org>
Reviewed-by: Brad Nelson <bradnelson@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604059}
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/android/compositor/compositor_view.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/android/feedback/process_id_feedback_source.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/chrome_content_browser_client_browsertest_chromeos.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/chrome_plugin_browsertest.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/chromeos/app_mode/app_session.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/extensions/api/processes/processes_api.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/image_decoder_browsertest.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/memory_details.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/performance_monitor/performance_monitor.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/resource_coordinator/browser_child_process_watcher.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/task_manager/providers/child_process_task.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/task_manager/providers/child_process_task_provider.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/task_manager/providers/child_process_task_unittest.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/task_manager/providers/render_process_host_task_provider.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/ui/hung_plugin_tab_helper.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/chrome/browser/ui/webui/memory_internals_ui.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/crash/content/browser/child_exit_observer_android.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/heap_profiling/client_connection_manager.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/nacl/browser/nacl_broker_host_win.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/nacl/browser/nacl_broker_service_win.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/nacl/browser/nacl_broker_service_win.h
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/nacl/browser/nacl_process_host.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/components/nacl/browser/nacl_process_host.h
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/browser/browser_child_process_host_impl.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/browser/browser_child_process_host_impl.h
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/browser/histogram_controller.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/browser/ppapi_plugin_process_host.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/browser/service_manager/service_manager_context.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/public/browser/browser_child_process_host.h
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/public/browser/child_process_data.cc
[modify] https://crrev.com/884da029983917d68a89dd7e127a93dd9724e2d3/content/public/browser/child_process_data.h

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/35ade2a65b29fbcb1357f689252f70845ab72f3d

commit 35ade2a65b29fbcb1357f689252f70845ab72f3d
Author: Francois Doray <fdoray@chromium.org>
Date: Wed Oct 31 12:36:34 2018

RC: Get exact process launch time in ProcessResourceCoordinator.

With this CL, a ProcessCoordinationUnit stores the launch time
obtained from base::Process::CreationTime() rather than a time
obtained from base::Time::Now() after process launch. That
will make it easier to validate that a handle to the right
process is obtained when calling ::OpenProcess() with a Pid
on Windows.

Bug: 885293
Change-Id: I56bfce59b51542f71eec83777aa53fd8f4e7d245
Reviewed-on: https://chromium-review.googlesource.com/c/1273257
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604223}
[modify] https://crrev.com/35ade2a65b29fbcb1357f689252f70845ab72f3d/chrome/browser/resource_coordinator/browser_child_process_watcher.cc
[modify] https://crrev.com/35ade2a65b29fbcb1357f689252f70845ab72f3d/chrome/browser/resource_coordinator/chrome_browser_main_extra_parts_resource_coordinator.cc
[modify] https://crrev.com/35ade2a65b29fbcb1357f689252f70845ab72f3d/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/35ade2a65b29fbcb1357f689252f70845ab72f3d/services/resource_coordinator/public/cpp/process_resource_coordinator.cc
[modify] https://crrev.com/35ade2a65b29fbcb1357f689252f70845ab72f3d/services/resource_coordinator/public/cpp/process_resource_coordinator.h

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1

commit 1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1
Author: Francois Doray <fdoray@chromium.org>
Date: Wed Oct 31 15:40:48 2018

RC: Add WorkingSetTrimmer.

WorkingSetTrimmer empties the working set of processes in which all
frames are frozen. We want to do this to:
  1. Track working set growth rate (we empty the working set and
     record its size x minutes after).
  2. Assess impact on global performance.

Bug: 885293
Change-Id: I371cc17836b6de5cc749dfb6488b7734a6bf870c
Reviewed-on: https://chromium-review.googlesource.com/c/1238819
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604263}
[modify] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/BUILD.gn
[add] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/observers/working_set_trimmer_win.cc
[add] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/observers/working_set_trimmer_win.h
[add] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/observers/working_set_trimmer_win_unittest.cc
[modify] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/public/cpp/resource_coordinator_features.cc
[modify] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/public/cpp/resource_coordinator_features.h
[modify] https://crrev.com/1c4e6fb5342d0dfe2adc522cc6a9a487861a2af1/services/resource_coordinator/resource_coordinator_service.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/15bb4390f89de1fd9f16aa9738734c6ee1df8bf8

commit 15bb4390f89de1fd9f16aa9738734c6ee1df8bf8
Author: Francois Doray <fdoray@chromium.org>
Date: Wed Oct 31 17:26:54 2018

Fix and enable ProcessMemoryMetricsEmitterTest browser tests.

Also mark as obsolete histograms that stopped being recorded in
https://chromium-review.googlesource.com/c/chromium/src/+/961384.

Bug: 885293
Change-Id: Id14bbc92a6aa175f5e5c9b5ebfa9173b8b157046
Reviewed-on: https://chromium-review.googlesource.com/c/1305195
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604312}
[modify] https://crrev.com/15bb4390f89de1fd9f16aa9738734c6ee1df8bf8/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc
[modify] https://crrev.com/15bb4390f89de1fd9f16aa9738734c6ee1df8bf8/tools/metrics/histograms/histograms.xml

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c64d9f9e364fc1db5e2789326af06752798ebaaf

commit c64d9f9e364fc1db5e2789326af06752798ebaaf
Author: Francois Doray <fdoray@chromium.org>
Date: Wed Oct 31 22:00:49 2018

Replace boolean with enum in ProcessMemoryMetricsEmitterTest browser test.

The goal is to improve readability of upcoming additions to the tests.

Bug: 885293
Change-Id: I154a924e0493440d6ecf2b574c90183fbbc1ce73
Reviewed-on: https://chromium-review.googlesource.com/c/1305205
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604390}
[modify] https://crrev.com/c64d9f9e364fc1db5e2789326af06752798ebaaf/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 1

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b67d830f42e9b5b23677430c927562997a08f322

commit b67d830f42e9b5b23677430c927562997a08f322
Author: Francois Doray <fdoray@chromium.org>
Date: Thu Nov 01 18:49:45 2018

Add Memory.*.ResidentSet histograms.

These histograms record the size of the resident memory per process type and in
total. Resident memory is influenced by factors we control (e.g. memory that is
not accessed can be swapped) and factors we don't control (e.g. an unrelated
process using a lot of memory can force memory in our process to be swapped).
Histograms are recorded once per UMA ping.

These histograms are added to answer the following question:
- Do the efforts we make to reduce the amount of memory accessed by frozen
  renderers has an impact on the size of their working set?

Bug: 885293
Change-Id: I7cb3b1b5bd4d927277f5f4c9e96455dc0ff2ef94
Reviewed-on: https://chromium-review.googlesource.com/c/1301847
Commit-Queue: François Doray <fdoray@chromium.org>
Reviewed-by: Brian White <bcwhite@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604654}
[modify] https://crrev.com/b67d830f42e9b5b23677430c927562997a08f322/chrome/browser/metrics/process_memory_metrics_emitter.cc
[modify] https://crrev.com/b67d830f42e9b5b23677430c927562997a08f322/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc
[modify] https://crrev.com/b67d830f42e9b5b23677430c927562997a08f322/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
[modify] https://crrev.com/b67d830f42e9b5b23677430c927562997a08f322/tools/metrics/histograms/histograms.xml

Sign in to add a comment