android_webview
apps
ash
base
build
build_overrides
buildtools
cc
chrome
chromecast
chromeos
codelabs
components
content
courgette
crypto
dbus
device
docs
accessibility
autofill
design
enterprise
fuchsia
gpu
images
infra
intl
ios
linux
login
mac
media
memory
DIR_METADATA
README.md
achievements.md
android_dev_tips.md
bad_jokes.md
debugging_memory_issues.md
filing_memory_bugs.md
investigating_heap_dump_example.md
key_concepts.md
objectives.md
oom.md
tools.md
memory-infra
patterns
privacy
privacy_budget
process
security
speed
speed_metrics
standards
testing
ui
updater
webapps
workflow
DIR_METADATA
OWNERS
README.md
accessibility.md
ad_tagging.md
adding_to_third_party.md
android_accessing_cpp_enums_in_java.md
android_accessing_cpp_features_in_java.md
android_accessing_cpp_switches_in_java.md
android_build_instructions.md
android_cast_build_instructions.md
android_debugging_instructions.md
android_dynamic_feature_modules.md
android_emulator.md
android_isolated_splits.md
android_logging.md
android_native_libraries.md
android_studio.md
angle_in_chromium.md
api_keys.md
asan.md
atom.md
bitmap_pipeline.md
branch_sheriff.md
building_old_revisions.md
callback.md
ccache_mac.md
chrome_os_logging.md
chrome_settings.md
chrome_untrusted.md
chromedriver_status.md
chromeos_build_instructions.md
chromeos_glossary.md
chromium_browser_vs_google_chrome.md
cipd_and_3pp.md
cl_respect.md
clang.md
clang_code_coverage_wrapper.md
clang_format.md
clang_sheriffing.md
clang_static_analyzer.md
clang_tidy.md
clang_tool_refactoring.md
clangd.md
clion.md
closure_compilation.md
cocoa_tips_and_tricks.md
code_review_owners.md
code_reviews.md
commit_checklist.md
component_build.md
configuration.md
contributing.md
cq_quick_run.md
cr_respect.md
cr_user_manual.md
cross_platform_ui.md
cygwin_dll_remapping_failure.md
dangling_ptr.md
dbus_mojo_connection_service.md
debugging_with_crash_keys.md
deterministic_builds.md
disassemble_code.md
documentation_best_practices.md
documentation_guidelines.md
early-hints.md
eclipse.md
emacs.md
erc_irc.md
flag_expiry.md
flag_ownership.md
frame_trees.md
gdbinit.md
get_the_code.md
git_cookbook.md
git_tips.md
google_chrome_branded_builds.md
google_play_services.md
graphical_debugging_aid_chromium_views.md
gwp_asan.md
how_cc_works.md
how_to_add_your_feature_flag.md
how_to_extend_web_test_framework.md
idn.md
initialize_blink_features.md
inlined_stack_traces.md
installation_at_vmware.md
ios_build_instructions.md
ios_infra.md
ios_voiceover.md
kiosk_mode.md
lacros.md
life_of_a_frame.md
lldbinit.md
mac_arm64.md
mac_build_instructions.md
mac_lld.md
mojo_and_services.md
mojo_ipc_conversion.md
mojo_testing.md
native_relocations.md
navigation-request-navigation-state.gv
navigation-request-navigation-state.png
navigation.md
navigation_concepts.md
network_traffic_annotations.md
new_port_policy.md
no_sources_assignment_filter.md
optimizing_web_uis.md
origin_trials_integration.md
ozone_overview.md
parsing_test_results.md
pgo.md
piranha_plant.md
process_model_and_site_isolation.md
profiling.md
profiling_content_shell_on_android.md
proxy_auto_config.md
python3_migration.md
qtcreator.md
release_branch_guidance.md
render-frame-host-lifecycle-state.gv
render-frame-host-lifecycle-state.png
render_document.md
seccomp_sandbox_crash_dumping.md
servicification.md
session_history.md
sheriff.md
shutdown.md
special_case_urls.md
static_initializers.md
sublime_ide.md
system_hardening_features.md
tab_helpers.md
threading_and_tasks.md
threading_and_tasks_faq.md
threading_and_tasks_testing.md
toolchain_support.md
tour_of_luci_ui.md
tpm_quick_ref.md
translation_screenshots.md
trusted_types_on_webui.md
updating_clang.md
updating_clang_format_binaries.md
use_counter_wiki.md
useful_urls.md
user_data_dir.md
user_data_storage.md
user_handle_mapping.md
vanilla_msysgit_workflow.md
vscode.md
vscode_python.md
webui_explainer.md
webui_in_chrome.md
webui_in_components.md
webview_policies.md
win_cross.md
win_order_files.md
windows_build_instructions.md
windows_native_window_occlusion_tracking.md
windows_pwa_integration.md
windows_shortcut_and_taskbar_handling.md
windows_split_dll.md
windows_virtual_desktop_handling.md
wmax_tokens.md
working_remotely_with_android.md
writing_clang_plugins.md
extensions
fuchsia
fuchsia_web
gin
google_apis
google_update
gpu
headless
infra
ios
ipc
media
mojo
native_client_sdk
net
pdf
ppapi
printing
remoting
rlz
sandbox
services
skia
sql
storage
styleguide
testing
third_party
tools
ui
url
weblayer
.clang-format
.clang-tidy
.eslintrc.js
.git-blame-ignore-revs
.gitattributes
.gitignore
.gn
.mailmap
.rustfmt.toml
.vpython
.vpython3
.yapfignore
AUTHORS
BUILD.gn
CODE_OF_CONDUCT.md
DEPS
DIR_METADATA
ENG_REVIEW_OWNERS
LICENSE
LICENSE.chromium_os
OWNERS
PRESUBMIT.py
PRESUBMIT_test.py
PRESUBMIT_test_mocks.py
README.md
WATCHLISTS
codereview.settings
…
Memory
Landing page for all things memory-related in Chromium.
How is chrome's memory usage doing in the world?
Look at the UMAs Memory.{Total,Renderer,Browser,Gpu,Extension}.PrivateMemoryFootprint.
How do developers communicate?
Note, these channels are for developer coordination and NOT user support. If you are a Chromium user experiencing a memory related problem, file a bug instead.
name | description |
---|---|
memory-dev@chromium.org | Discussion group for all things memory related. Post docs, discuss bugs, etc., here. |
chrome-memory@google.com | Google internal version of the above. Use sparingly. |
https://chromium.slack.com/messages/memory/ | Slack channel for real-time discussion with memory devs. Lots of C++ sadness too. |
crbug Performance=Memory label | Bucket with auto-filed and user-filed bugs. |
crbug Stability=Memory label | Tracks mostly OOM crashes. |
I have memory problem, what do I do?
Follow these instructions to file a high quality bug.
I'm a developer trying to investigate a memory issues, what do I do?
See this page for further instructions.
I'm a developer looking for more information. How do I get started?
Great! First, sign up for the mailing lists above and check out the slack channel.
Second, familiarize yourself with the following:
Topic | Description |
---|---|
Key Concepts in Chrome Memory | Primer for memory terminology in Chrome. |
memory-infra | The primary tool used for inspecting allocations. |
What are people actively working on?
There are roughly three types of memory work within Chrome:
- Team based, targeted improvements. Examples include:
- memory reductions for specific components [e.g. for v8]
- allocator improvements [e.g. PartitionAlloc]
- memory purging at appropriate times [e.g. on tab background]
- better memory pressure signals
- Memlog: Heap profiling in the wild for regression detection + root cause analysis.
- Lab tests: Perf waterfall for micro-regressions, ASAN/MSAN/LSAN, blink leak detector.
Key knowledge areas and contacts
Knowledge Area | Contact points |
---|---|
Chrome on Android | lizeb, pasko, ssid |
Browser Process | ssid, erikchen, etienneb |
GPU/cc | ericrk |
Memory metrics | ssid, erikchen, primano, ajwong, wez |
Heap Profiling | alph, erikchen, ssid, etienneb |
Net Stack | mmenke, rsleevi, xunjieli |
Renderer Process | haraken, tasak, hajimehoshi, keishi, hiroshige |
V8 | hpayer, ulan, verwaest, mlippautz |