Commit 1a9f684d authored by Bruce Dawson's avatar Bruce Dawson Committed by Commit Bot

Opt in to the Windows "segment heap"

Adding a SegmentHeap entry to the chrome.exe manifest will tell
recent-enough versions of Windows (20-04 and beyond) to opt chrome.exe
into using the segment heap instead of the legacy heap. Details are in
the bug but it appears that the default Windows heap is tuned for server
workloads where throughput is what matters most, and Chromium
(especially due to its multi-process architecture) also has to care
about memory footprint. Experiments with per-machine opting-in to the
segment heap for chrome.exe suggests that this could save hundreds of MB
in the browser and Network Service utility processes, among others, on
some machines. Actual results will vary widely, with the greatest
savings coming on many-core machines.

In order to avoid build warnings this change depends on switching to
building with the Windows 10.0.19041.0 (20-04) SDK.

The initial investigation of this is in crbug.com/982452.

Bug: 1014701
Change-Id: I217d045ee0d365ac57f7a73b0f5ed456469214c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2163163
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#782134}
parent e0eddc3e
......@@ -41,6 +41,9 @@ as_invoker_manifest = "//build/win/as_invoker.manifest"
# elevate.
require_administrator_manifest = "//build/win/require_administrator.manifest"
# Request the segment heap. See https://crbug.com/1014701 for details.
segment_heap_manifest = "//build/win/segment_heap.manifest"
# Construct a target to combine the given manifest files into a .rc file.
#
# Variables for the windows_manifest template:
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
</windowsSettings>
</application>
</assembly>
......@@ -24,6 +24,7 @@ windows_manifest("chrome_exe_manifest") {
as_invoker_manifest,
common_controls_manifest,
default_compatibility_manifest,
segment_heap_manifest,
version_assembly_output_file,
]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment