` elements) are no longer attached to the DOM, but they're still referenced by the Room 1 instance of the **Room** class. They are detached elements, which can cause memory leaks, unless they are going to be used again by the webpage.
+
+
+
+ **Get the list of detached elements:**
+
+1. In DevTools, in the **Memory** tool, click the **Collect garbage** () icon:
+
+ 
+
+ The browser runs garbage collection, removing any nodes that are no longer referenced by a JavaScript object.
+
+1. In the **Memory** tool, select the **Heap snapshot** option button.
+
+1. Click the **Take snapshot** button at the bottom of the **Memory** tool.
+
+ The snapshot is processed, loaded, and then listed in the **Profiles** sidebar, in the **Heap snapshots** section.
+
+1. In the **Filter by class** text box, type **detached**:
+
+ 
+
+ The detached DOM elements that can't be garbage-collected are displayed.
+
+
+
+ **Identify the JavaScript code that references a particular detached element:**
+
+1. In the heap snapshot, expand a **Detached** object, such as **Detached \
**, and then select a **Detached \
** node.
+
+ Information is displayed in the **Retainers** pane at the bottom of the **Memory** tool.
+
+
+
+1. In the **Retainers** pane, click the `room.js:13` link for an **unmounted in Room** item under **Array**. The **Sources** tool opens, displaying `room.js`, scrolled to line 13:
+
+ 
+
+1. To inspect the possible memory leak, study the code that uses the `unmounted` array and make sure that the reference to the node is removed when it is no longer needed.
+
+1. To return to the **Memory** tool, in the **Address Bar**, select the **Memory** tool.
+
+
+For additional ways to see detached elements, see [Tools for investigating detached elements](./index.md#tools-for-investigating-detached-elements) in _Fix memory problems_.
+
+
+
+
## See also
+
+
+* [Tools for investigating detached elements](./index.md#tools-for-investigating-detached-elements) in _Fix memory problems_.
+* [Memory terminology](./memory-101.md)
-* [Memory terminology](./memory-101.md).
-* [Finding and debugging memory leaks in JavaScript with Chrome DevTools](https://slid.es/gruizdevilla/memory) by Gonzalo Ruiz de Villa, which also applies to Microsoft Edge DevTools.
+External:
+* [Finding and debugging memory leaks in JavaScript with Chrome DevTools](https://slid.es/gruizdevilla/memory) - slide deck (by Gonzalo Ruiz de Villa), which also applies to Microsoft Edge DevTools.
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/allocation-timeline-snapshot-all.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/allocation-timeline-snapshot-all.png
deleted file mode 100644
index aa68a5952b..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/allocation-timeline-snapshot-all.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/detached-elements-profile.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/detached-elements-profile.png
new file mode 100644
index 0000000000..175bf5c493
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/detached-elements-profile.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/gc-in-performance.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/gc-in-performance.png
deleted file mode 100644
index 43d996f259..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/gc-in-performance.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-gc-settings.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-gc-settings.png
deleted file mode 100644
index b7d8d5f6b3..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-gc-settings.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-heavy-bottom-up.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-heavy-bottom-up.png
deleted file mode 100644
index 2fb7f2550c..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling-heavy-bottom-up.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling.png
deleted file mode 100644
index d361572500..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-allocation-sampling.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded-selected.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded-selected.png
deleted file mode 100644
index 47132db793..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded-selected.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded.png
deleted file mode 100644
index b6bc354567..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached-expanded.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached.png
deleted file mode 100644
index 2bbff03ac8..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot-filter-detached.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot.png
deleted file mode 100644
index 2fa8566cce..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-heap-snapshot.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-tool.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-tool.png
new file mode 100644
index 0000000000..f1e20de1e0
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/memory-tool.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/performance-memory.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/performance-memory.png
deleted file mode 100644
index 2a69d85747..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/performance-memory.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/profiles-icon.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/profiles-icon.png
new file mode 100644
index 0000000000..b2bff8996c
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/profiles-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/stop-recording-icon.png b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/stop-recording-icon.png
index a8a3fa3f50..f6de64a490 100644
Binary files a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/stop-recording-icon.png and b/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/stop-recording-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index.md b/microsoft-edge/devtools-guide-chromium/memory-problems/index.md
index c3adf9e652..bc9deabbb5 100644
--- a/microsoft-edge/devtools-guide-chromium/memory-problems/index.md
+++ b/microsoft-edge/devtools-guide-chromium/memory-problems/index.md
@@ -6,7 +6,7 @@ ms.author: msedgedevrel
ms.topic: conceptual
ms.service: microsoft-edge
ms.subservice: devtools
-ms.date: 07/21/2023
+ms.date: 10/18/2024
---
# Fix memory problems
-Learn how to use Microsoft Edge and DevTools to find memory issues that affect page performance, including memory leaks, memory bloat, and frequent garbage collections.
+To find memory issues that affect page performance, including memory leaks, memory bloat, and frequent garbage collections, use the following tools:
+* Microsoft Edge Browser Task Manager.
+* The **Performance** tool's **Memory** checkbox.
+* The **Memory** tool's various profiling types.
-* Find out how much memory your page is currently using with the Microsoft Edge Browser Task Manager.
-* Visualize memory usage over time with the **Memory** tool.
-* Identify detached DOM trees (a common cause of memory leaks) with **Heap snapshot**.
-* Find out when new memory is being allocated in your JavaScript heap (JS heap) with **Allocation instrumentation on timeline**.
-See also [Debug DOM memory leaks with the Detached Elements tool](dom-leaks.md).
+
+#### Tools for investigating memory usage
+
+| Use case | Tool | Article |
+|---|---|---|
+| Monitor how much memory a webpage uses, in realtime. | Microsoft Edge Browser Task Manager | [Monitor memory use in realtime (Microsoft Edge Browser Task Manager)](./microsoft-edge-browser-task-manager.md) |
+| Visualize the memory usage of a webpage over a period of time. | **Performance** tool > **Memory** checkbox | [Visualize memory leaks (Performance tool: Memory checkbox)](../evaluate-performance/reference.md#visualize-memory-leaks-performance-tool-memory-checkbox) in _Performance features reference_. |
+| Spot frequent garbage collections. | Microsoft Edge Browser Task Manager, or **Performance** tool > **Memory** checkbox | [Spot frequent garbage collections (Microsoft Edge Browser Task Manager, Performance tool's Memory checkbox)](#spot-frequent-garbage-collections-microsoft-edge-browser-task-manager-performance-tools-memory-checkbox), below. |
+| Inspect the contents of the memory used by a webpage. | **Memory** tool > **Heap snapshot** | [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](./heap-snapshots.md) |
+| Find out which JavaScript objects get created over a period of time, to isolate memory leaks. | **Memory** tool > **Allocations on timeline** | [Use Allocation instrumentation on timeline ("Allocations on timeline" profiling type)](./allocation-profiler.md) |
+| Find out which JavaScript functions allocate memory over a period of time. This profile type has minimal performance overhead and can be used for long-running operations. | **Memory** tool > **Allocation sampling** | [Speed up JavaScript runtime ("Allocation sampling" profiling type)](../rendering-tools/js-runtime.md) |
+| Find DOM tree memory leaks. | **Memory** tool > **Detached elements** | [Debug DOM memory leaks ("Detached elements" profiling type)](./dom-leaks-memory-tool-detached-elements.md) |
+
+
+
+#### The Memory tool
+
+The main tool for investigating memory issues is the **Memory** tool:
+
+
+
+A Detached Elements profile in the **Memory** tool:
+
+
+
+To return to the list of option buttons for profiling types, in the upper left of the **Memory** tool, click **Profiles** ().
-## Overview
+## Overview of fixing memory problems
In the spirit of the **RAIL** performance model, the focus of your performance efforts should be your users.
-
+
Memory issues are important because they are often perceivable by users. Users may perceive memory issues in the following ways:
@@ -60,239 +84,46 @@ The key here is to use the RAIL model and focus on your users. Find out what de
-## Monitor memory use in realtime with the Microsoft Edge Browser Task Manager
-
-Use the Microsoft Edge Browser Task Manager as a starting point to your memory issue investigation. The Microsoft Edge Browser Task Manager is a realtime monitor that tells you how much memory a page is currently using.
-
-1. Press **Shift+Esc** or go to the Microsoft Edge main menu and select **More tools** > **Browser Task Manager** to open the Microsoft Edge Browser Task Manager.
-
- 
-
-1. Right-click the table header of the Microsoft Edge Browser Task Manager, and then enable **JavaScript memory**.
+## Spot frequent garbage collections (Microsoft Edge Browser Task Manager, Performance tool's Memory checkbox)
- 
+If your page appears to pause frequently, then you may have garbage collection issues. To spot frequent garbage collection, you can use either:
-These two columns tell you different things about how your page is using memory:
+* Microsoft Edge Browser Task Manager. Frequently rising and falling **Memory** or **JavaScript Memory** values represent frequent garbage collection. See [Monitor memory use in realtime (Microsoft Edge Browser Task Manager)](./microsoft-edge-browser-task-manager.md).
-* The **Memory** column represents native memory. DOM nodes are stored in native memory. If this value is increasing, DOM nodes are getting created.
+* The **Performance** tool's **Memory** checkbox. In Performance memory recordings, frequent changes (rising and falling) to the JS heap or node count graphs indicate frequent garbage collection. See [View memory metrics](../evaluate-performance/reference.md#view-memory-metrics) in _Performance features reference_.
-* The **JavaScript Memory** column represents the JS heap. This column contains two values. The value you are interested in is the live number (the number in parentheses). The live number represents how much memory the reachable objects on your page are using. If this number is increasing, either new objects are being created, or the existing objects are growing.
-
-
+After you have identified the problem by using either of those tool, you can then use the **Memory** tool's **Allocations on timeline** profiling type to find out where memory is being allocated, and which functions are causing the allocations. See [Use Allocation instrumentation on timeline ("Allocations on timeline" profiling type)](./allocation-profiler.md).
-## Visualize memory leaks with Performance tool
-
-You can also use the **Performance** tool as another starting point in your investigation. The **Performance** tool helps you visualize the memory use of a page over time.
-
-1. In DevTools, open the **Performance** tool.
-
-1. Select the **Memory** checkbox.
-
-1. [Make a recording](../evaluate-performance/reference.md#record-performance).
-
-It's a good practice to start and end your recording with a forced garbage collection. To force garbage collection, click the **collect garbage**  button while recording.
-
-To demonstrate memory recordings, consider the following code:
-
-```javascript
-var x = [];
-function grow() {
- for (var i = 0; i < 10000; i++) {
- document.body.appendChild(document.createElement('div'));
- }
- x.push(new Array(1000000).join('x'));
-}
-document.getElementById('grow').addEventListener('click', grow);
-```
-
-Every time that the button referenced in the code is clicked, 10,000 `div` nodes are appended to the document body, and a string of 1,000,000 `x` characters is pushed onto the `x` array. Running the previous code sample produces a recording in the **Performance** tool like the following figure:
-
-
-
-First, an explanation of the user interface. The **HEAP** graph in the **Overview** pane (below **NET**) represents the JS heap. Below the **Overview** pane is the **Counter** pane. The memory usage is broken down by JS heap (same as **HEAP** graph in the **Overview** pane), documents, DOM nodes, listeners, and GPU memory. Clear a checkbox to hide it from the graph.
-
-Now, an analysis of the code compared with the previous figure. If you review the node counter (the green graph), it matches up cleanly with the code. The node count increases in discrete steps. You can presume that each increase in the node count is a call to `grow()`.
-
-The JS heap graph (the blue graph) is not as straightforward. In keeping with best practices, the first dip is actually a forced garbage collection (click the **collect garbage**  button).
-
-As the recording progresses, the JS heap size spikes are displayed. This is natural and expected: the JavaScript code is creating the DOM nodes on every button you click, and is doing a lot of work when it creates the string of one million characters.
-
-The key thing here is the fact that the JS heap ends higher than it began (the "beginning" here being the point after the forced garbage collection). In the real world, if you saw this pattern of increasing JS heap size or node size, it would potentially indicate a memory leak.
-
-
-
-
-
-## Discover detached DOM tree memory leaks with Heap Snapshots
-
-
-
-A DOM node is only garbage collected when there are no references to the node from either the DOM tree or JavaScript code running on the page. A node is said to be "detached" when it is removed from the DOM tree but some JavaScript still references it. Detached DOM nodes are a common cause of memory leaks.
-
-This section teaches you how to use the heap profilers in DevTools to identify detached nodes.
-
-Here's a simple example of detached DOM nodes:
-
-```javascript
-var detachedTree;
-
-function create() {
- var ul = document.createElement('ul');
- for (var i = 0; i < 10; i++) {
- var li = document.createElement('li');
- ul.appendChild(li);
- }
- detachedTree = ul;
-}
-document.getElementById('create').addEventListener('click', create);
-```
-
-Clicking the button referenced in the code creates a `ul` node with ten `li` children. The nodes are referenced by the code, but they don't exist in the DOM tree, so each node is detached.
-
-Heap snapshots are one way to identify detached nodes. As the name implies, heap snapshots show you how memory is distributed among the JS objects and DOM nodes for your page at the point of time of the snapshot.
-
-To create a snapshot:
-
-1. Open DevTools and go to the **Memory** tool.
-
-1. Click the **Heap snapshot** radio button, and then click the **Take snapshot** button at the bottom of the tool.
-
- 
-
- The snapshot may take some time to process and load.
-
-1. After the snapshot is finished, select it from the left-hand panel (it's named **HEAP SNAPSHOTS**).
-
-1. In the **Class filter** text box, type `Detached`, to search for detached DOM trees:
-
- 
-
-1. Expand the carats to investigate a detached tree:
-
- 
-
-
-
-1. Click a node to investigate it further.
+## Find DOM tree memory leaks from detached elements
- In the **Objects** pane, you can see more information about the code that is referencing the node. For example, in the following figure, the `detachedTree` variable is referencing the node.
+A DOM node is only garbage-collected by the browser when there are no references to the node from either the DOM tree or JavaScript code running on the page. A node is said to be "detached" when it is removed from the DOM tree but some JavaScript still references it. Detached DOM nodes are a common cause of memory leaks.
-1. To fix the particular memory leak, study the code that uses the `detachedTree` variable and make sure that the reference to the node is removed when it is no longer needed.
-
-
-
-
-
-
-## Identify JS heap memory leaks with Allocation instrumentation on timeline
-
-**Allocation instrumentation on timeline** is another tool that can help you track down memory leaks in your JS heap.
-
-Demonstrate **Allocation instrumentation on timeline** using the following code:
-
-```javascript
-var x = [];
-function grow() {
- x.push(new Array(1000000).join('x'));
-}
-document.getElementById('grow').addEventListener('click', grow);
-```
-
-Every time that the button referenced in the code is clicked, a string of one million characters is added to the `x` array.
-
-To record an Allocation instrumentation on timeline:
-
-1. Open DevTools, and select the **Memory** tool.
-
-1. Click the **Allocation instrumentation on timeline** radio button, then click the **Start** button.
-
-1. Perform the action that you suspect is causing the memory leak.
-
-1. When you are done, click the **Stop recording heap profile**  button.
-
-1. As you are recording, notice whether any blue bars show up on the Allocation instrumentation on the timeline, like in the following figure:
-
- 
-
- Those blue bars represent new memory allocations. Those new memory allocations are your candidates for memory leaks.
-
-1. Zoom on a bar to filter the **Constructor** pane to only show objects that were allocated during the specified timeframe.
-
- 
-
-1. Expand the object and select the value to view more details in the **Object** pane.
-
- For example, in the following figure, in the details of the newly allocated object indicates that it was allocated to the `x` variable in the `Window` scope:
-
-
-
-
-
-## Investigate memory allocation by function
-
-Use the **Allocation sampling** profiling type to view memory allocation by JavaScript function.
-
-
-
-1. Click the **Allocation sampling** radio button.
-
-1. If there is a worker on the page, you can select that as the profiling target, by using the dropdown menu next to the **Start** button.
-
-1. Click the **Start** button.
-
-1. On the webpage, perform actions that you want to investigate.
-
-1. Click the **Stop** button when you have finished all of your actions.
-
-DevTools shows you a breakdown of memory allocation by function. The default view is **Heavy (Bottom Up)**, which displays the functions that allocated the most memory at the top.
-
-
-
-
-
-## Reduce garbage with additional settings for allocation sampling
-
-By default, the **Allocation sampling** profiling type only reports allocations that are still alive at the end of the recording session. Objects that are created, removed, and then garbage collected (GC'd) aren't displayed in the **Memory** tool when profiling using the **Allocation sampling** or **Allocation instrumentation on timeline** types.
-
-You can trust the browser to clean up garbage from your code. However, it is important to consider that GC itself is an expensive operation and multiple GCs can slow down your user's experience of your website or app. When recording in the **Performance** tool with the **Memory** checkbox turned on, you can see the GC operation happen at the steep cliffs (sudden decreases) in the heap chart.
-
-
-
-By reducing the amount of garbage your code is creating, you can reduce the cost of each individual GC and the number of GC operations. To track objects that are discarded by GC, configure the **Allocation sampling** profiling type with settings.
-
-1. Click the **Allocation sampling** option button.
-
-1. Click the **Include objects discarded by major GC** and **Include objects discarded by minor GC** settings.
-
- 
-
-1. Click the **Start** button.
-
-1. On the webpage, perform actions that you want to investigate.
-
-1. Click the **Stop** button when you have finished all of your actions.
+
+#### Tools for investigating detached elements
-DevTools now tracks all of the objects that were GC'd during the recording. Use these settings to understand how much garbage your website or app is generating. The data reported by **Allocation sampling** will help you identify the functions that are generating the most garbage.
+| Use case | Tool | Article |
+|---|---|---|
+| Show detached elements only, as DOM tree nodes. | **Memory** tool > **Detached elements** profiling type | [Debug DOM memory leaks ("Detached elements" profiling type)](./dom-leaks-memory-tool-detached-elements.md) |
+| Show all objects in memory, filtered to display detached elements, with links to the JavaScript source code. | **Memory** tool > **Heap snapshot** profiling type > **Detached** | [Find DOM tree memory leaks ("Heap snapshot" profiling type > Detached)](./heap-snapshots.md#find-dom-tree-memory-leaks-heap-snapshot-profiling-type--detached) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_. |
+| Show detached elements only, as DOM tree nodes, with links to the JavaScript source code. | **Detached Elements** tool | [Debug DOM memory leaks by using the Detached Elements tool](./dom-leaks.md) |
-If you are investigating objects that were only GC'd during specific major or minor GC operations, configure the settings appropriately to track the operation you care about. To learn more about the differences between major and minor GC, see [Trash talk: the Orinoco garbage collector | V8 JavaScript engine developer blog](https://v8.dev/blog/trash-talk).
-## Spot frequent garbage collections
-
-If your page appears to pause frequently, then you may have garbage collection issues.
-
-You can use either the Microsoft Edge Browser Task Manager or Performance memory recordings to spot frequent garbage collection.
-
-* In the Microsoft Edge Browser Task Manager, frequently rising and falling **Memory** or **JavaScript Memory** values represent frequent garbage collection.
-
-* In Performance recordings, frequent changes (rising and falling) to the JS heap or node count graphs indicate frequent garbage collection.
-
-After you have identified the problem, you can use an **Allocation instrumentation on timeline** recording to find out where memory is being allocated and which functions are causing the allocations.
+## See also
+
+
+* [Use Allocation instrumentation on timeline ("Allocations on timeline" profiling type)](./allocation-profiler.md)
+* [Debug DOM memory leaks by using the Detached Elements tool](./dom-leaks.md)
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](./heap-snapshots.md)
+
+
+External:
+* [Finding and debugging memory leaks in JavaScript with Chrome DevTools](https://slid.es/gruizdevilla/memory) - slide deck (by Gonzalo Ruiz de Villa), which also applies to Microsoft Edge DevTools.
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/memory-101.md b/microsoft-edge/devtools-guide-chromium/memory-problems/memory-101.md
index d4c238c2eb..b066a67136 100644
--- a/microsoft-edge/devtools-guide-chromium/memory-problems/memory-101.md
+++ b/microsoft-edge/devtools-guide-chromium/memory-problems/memory-101.md
@@ -25,7 +25,7 @@ ms.date: 01/30/2024
The following terms are used in the **Memory** tool, which is for investigating memory issues. These memory terms are applicable to memory analysis in general, as well as memory profiling tools for languages such as Java or .NET.
-To learn more about using the **Memory** tool, see [Record heap snapshots using the Memory tool](./heap-snapshots.md).
+To learn more about using the **Memory** tool, see [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](./heap-snapshots.md).
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/bing-browser-task-manager-javascript-memory.png b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/bing-browser-task-manager-javascript-memory.png
similarity index 100%
rename from microsoft-edge/devtools-guide-chromium/memory-problems/index-images/bing-browser-task-manager-javascript-memory.png
rename to microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/bing-browser-task-manager-javascript-memory.png
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/index-images/bing-settings-more-tools-browser-task-manager.png b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/bing-settings-more-tools-browser-task-manager.png
similarity index 100%
rename from microsoft-edge/devtools-guide-chromium/memory-problems/index-images/bing-settings-more-tools-browser-task-manager.png
rename to microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/bing-settings-more-tools-browser-task-manager.png
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/javascript-memory-column.png b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/javascript-memory-column.png
new file mode 100644
index 0000000000..9175d0b1c7
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager-images/javascript-memory-column.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager.md b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager.md
new file mode 100644
index 0000000000..6e6beaae36
--- /dev/null
+++ b/microsoft-edge/devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager.md
@@ -0,0 +1,39 @@
+---
+title: Monitor memory use in realtime (Microsoft Edge Browser Task Manager)
+description: A starting point to inspect webpage memory issues. A realtime monitor that tells you how much memory a webpage is currently using.
+author: MSEdgeTeam
+ms.author: msedgedevrel
+ms.topic: conceptual
+ms.service: microsoft-edge
+ms.subservice: devtools
+ms.date: 10/21/2024
+---
+# Monitor memory use in realtime (Microsoft Edge Browser Task Manager)
+
+Use the Microsoft Edge Browser Task Manager as a starting point to your memory issue investigation. The Microsoft Edge Browser Task Manager is a realtime monitor that tells you how much memory a page is currently using.
+
+1. In Microsoft Edge, press **Shift+Esc**. Or, select **Settings and more** (**...**) > **More tools** > **Browser Task Manager**:
+
+ 
+
+ Microsoft Edge Browser Task Manager opens.
+
+1. Right-click the table header, and then enable **JavaScript memory**:
+
+ 
+
+ The **JavaScript memory** column is displayed:
+
+ 
+
+ * The **Memory** column represents native memory. DOM nodes are stored in native memory. If this value is increasing, DOM nodes are getting created.
+
+ * The **JavaScript memory** column represents the JS heap. This column contains two values. The value you are interested in is the live number (the number in parentheses). The live number represents how much memory the reachable objects on your page are using. If this number is increasing, either new objects are being created, or the existing objects are growing.
+
+
+
+
+
+## See also
+
+* [Fix memory problems](./index.md)
diff --git a/microsoft-edge/devtools-guide-chromium/overview.md b/microsoft-edge/devtools-guide-chromium/overview.md
index 8640ed78e0..973ba2468e 100644
--- a/microsoft-edge/devtools-guide-chromium/overview.md
+++ b/microsoft-edge/devtools-guide-chromium/overview.md
@@ -479,9 +479,13 @@ The **Customize and control DevTools** () button opens a dropdown menu that gives access to DevTools documentation, release notes, and to the **Feedback** () tool.
+The **Help** () button opens a dropdown menu that has the following items:
-To send connect with the Microsoft Edge DevTools team to report problems, issues, or suggest ideas, click the **Feedback** button. The **Send Feedback** dialog opens. Enter information to describe what happened and include a screenshot. See [Contact the Microsoft Edge DevTools team](contact.md).
+* **Documentation** - Opens [Microsoft Edge DevTools documentation](./landing/index.yml).
+
+* **Release notes** - Opens [What's New in Microsoft Edge DevTools](./whats-new/whats-new.md).
+
+* **Feedback** () - Opens the **Send feedback** dialog. To connect with the Microsoft Edge DevTools team to report a problem or issue (or to suggest an idea), describe what happened, and include a screenshot. See [Contact the Microsoft Edge DevTools team](contact.md).
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/image.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/image.png
new file mode 100644
index 0000000000..f527e04267
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/image.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md b/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md
index e0930e4e9a..3917a86f51 100644
--- a/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md
+++ b/microsoft-edge/devtools-guide-chromium/rendering-tools/index.md
@@ -54,7 +54,7 @@ Take a recording in the **Performance** tool and look for suspiciously long `Eva
-If you notice quite a bit of jank (interruptions of rendering) in your JavaScript, you may need to take your analysis to the next level and collect a JavaScript CPU profile. CPU profiles show where runtime is spent within the functions of your page. Learn how to create CPU profiles in [Speed up JavaScript runtime](js-runtime.md).
+If you notice quite a bit of jank (interruptions of rendering) in your JavaScript, you may need to take your analysis to the next level and collect a JavaScript CPU profile. CPU profiles show where runtime is spent within the functions of your page. Learn how to create CPU profiles in [Speed up JavaScript runtime ("Allocation sampling" profiling type)](js-runtime.md).
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/allocation-sampling-option-button.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/allocation-sampling-option-button.png
new file mode 100644
index 0000000000..22a3c9a1d3
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/allocation-sampling-option-button.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/exclude-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/exclude-icon.png
index 6c9d14d545..f2f60c1848 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/exclude-icon.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/exclude-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-icon.png
deleted file mode 100644
index fdea0e81da..0000000000
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-icon.png and /dev/null differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-selected-function-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-selected-function-icon.png
new file mode 100644
index 0000000000..e226197536
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/focus-selected-function-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/gc-in-performance.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/gc-in-performance.png
new file mode 100644
index 0000000000..613713cbb2
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/gc-in-performance.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-allocation-sampling-gc-settings.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-allocation-sampling-gc-settings.png
new file mode 100644
index 0000000000..f753a24ec4
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-allocation-sampling-gc-settings.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-tool-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-tool-icon.png
new file mode 100644
index 0000000000..5832399c60
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/memory-tool-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/more-tools-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/more-tools-icon.png
new file mode 100644
index 0000000000..71ff8ed5a2
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/more-tools-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/profiles-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/profiles-icon.png
new file mode 100644
index 0000000000..b2bff8996c
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/profiles-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart-zoomed.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart-zoomed.png
index fcf83a2602..b0837a2eb1 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart-zoomed.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart-zoomed.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart.png
index 5e0349629a..cc5aa1ac63 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-chart.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-heavy-bottom-up.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-heavy-bottom-up.png
index 1cbd943add..af9852fc17 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-heavy-bottom-up.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-heavy-bottom-up.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-tree-top-down.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-tree-top-down.png
index 88b064e728..59757ec3ae 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-tree-top-down.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/rendering-tools-gh-nodejs-benchmarks-run-memory-sampling-profiles-tree-top-down.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/restore-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/restore-icon.png
index 3ced95ec8a..c361a70cc5 100644
Binary files a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/restore-icon.png and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/restore-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sampling-profile.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sampling-profile.png
new file mode 100644
index 0000000000..118cbba618
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sampling-profile.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sort-order-menu.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sort-order-menu.png
new file mode 100644
index 0000000000..be6cfad835
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/sort-order-menu.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/stop-recording-icon.png b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/stop-recording-icon.png
new file mode 100644
index 0000000000..f6de64a490
Binary files /dev/null and b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime-images/stop-recording-icon.png differ
diff --git a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime.md b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime.md
index fe5d85894a..6b8ede0e23 100644
--- a/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime.md
+++ b/microsoft-edge/devtools-guide-chromium/rendering-tools/js-runtime.md
@@ -1,5 +1,5 @@
---
-title: Speed up JavaScript runtime
+title: Speed up JavaScript runtime ("Allocation sampling" profiling type)
description: Identify expensive, inefficient functions by using the Memory panel of Microsoft Edge DevTools.
author: MSEdgeTeam
ms.author: msedgedevrel
@@ -21,7 +21,7 @@ ms.date: 05/04/2021
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->
-# Speed up JavaScript runtime
+# Speed up JavaScript runtime ("Allocation sampling" profiling type)
To identify expensive functions, use the **Memory** tool:
@@ -33,45 +33,80 @@ Visualize your profiles as a flame chart.
-## Record a Sampling Profile
+## Use the "Allocation sampling" profiling type to view memory allocation by JavaScript function
-If you notice jank (interruptions of rendering) in your JavaScript, collect a Sampling Profile. Sampling Profiles show where running time is spent on functions in your page.
+If you notice jank (interruptions of rendering) in your JavaScript, collect a memory allocation sampling profile, by using the **Allocation sampling** profiling type. A sampling profile shows which functions allocated the most memory.
-1. In DevTools, go to the **Memory** tool.
+To use the **Allocation sampling** profiling type to view memory allocation by JavaScript function:
-1. Click the **Allocation sampling** option button.
+1. Open a webpage, such as the [Detached Elements demo webpage](https://microsoftedge.github.io/Demos/detached-elements/), in a new window or tab.
-1. Click **Start**.
+1. Right-click the webpage, and then select **Inspect**.
-1. Depending on what you are trying to analyze, you can either refresh the page, interact with the page, or just let the page run.
+ Or, press **Ctrl+Shift+I** (Windows, Linux) or **Command+Option+I** (macOS). DevTools opens.
-1. When you're finished, click the **Stop** button.
+1. In DevTools, in the **Activity Bar**, select the **Memory** () tool:
+
+ 
+
+ If the **Memory** tool isn't visible, click the **More tools** () button, and then select **Memory**.
+
+1. Select the **Allocation sampling** option button.
+
+ If the **Allocation sampling** option button isn't shown, because a profile is already displayed, in the upper left, click **Profiles** ().
+
+1. In the **Select JavaScript VM instance** section, if there is a worker on the page, you can select that as the profiling target.
+
+1. At the bottom of the **Memory** tool, click the **Start** button.
+
+1. Interact with the webpage. For example, click the **Fast traffic** button and then the **Stop** button in the demo webpage.
+
+ Depending on what you are trying to analyze, you can either refresh the page, interact with the page, or just let the page run.
+
+1. In the upper left of the **Memory** tool, click the **Stop heap profiling** () button.
+
+ Or, at the bottom of the **Memory** tool, click the **Stop** button. A new **Profile** is added in the **Sampling profiles** section in the **Profiles** sidebar:
+
+ 
+
+ The sampling profile shows a breakdown of memory allocation by function. The default view is **Heavy (Bottom Up)**. You can switch to the **Chart** or **Tree (Top Down)** view, per the section below.
You can also use the [Console Utilities API](../console/utilities.md) to record and group profiles from the command line.
-## View Sampling Profile
+## Change the view of a sampling profile
-When you finish recording, DevTools automatically populates the **Memory** panel under **SAMPLING PROFILES** with the data from your recording.
+To change the sort order in a memory allocation sampling profile, use the **Profile view mode** dropdown list, which initially says **Heavy (Bottom Up)**:
-The default view is **Heavy (Bottom Up)**. This view allows you to review which functions had the most impact on performance and examine the requesting path for each function.
+
+Menuitems:
+* **Chart** - Chronological chart of the recording.
+* **Heavy (Bottom Up)** - Lists the app's called functions in order of memory allocation, and shows the call path for each function. The default view.
+* **Tree (Top Down)** - Shows the calling structure, starting at the top of the call stack.
-
-#### Change sort order
-To change the sorting order, select the dropdown menu next to the **focus selected function** () icon and then select one of the following options:
+
+###### Chart
-**Chart**. Displays a chronological chart of the recording.
+The **Chart** view mode displays a chronological chart of the recording:

-**Heavy (Bottom Up)**. Lists functions by impact on performance and enables you to examine the calling paths to the functions. This is the default view.
+
+
+###### Heavy (Bottom Up)
+
+The **Heavy (Bottom Up)** view mode lists functions by impact on performance and enables you to examine the calling paths to the functions. This is the default view:

-**Tree (Top Down)**. Shows an overall picture of the calling structure, starting at the top of the call stack.
+
+
+###### Tree (Top Down)
+
+The **Tree (Top Down)** view mode shows an overall picture of the calling structure, starting at the top of the call stack:

@@ -79,17 +114,22 @@ To change the sorting order, select the dropdown menu next to the **focus select
#### Exclude functions
-To exclude a function from your Sampling Profile, select it and then click the **exclude selected function** () button. The requesting function (parent) of the excluded function (child) is charged with the allocated memory assigned to the excluded function (child).
+When **Heavy (Bottom Up)** or **Tree (Top Down)** is selected (not **Chart**), there are several buttons, that are available (not dimmed) when you select a row:
+* **Focus selected function** ()
+* **Exclude selected function** ()
+* **Restore all functions** ()
-Click the **restore all functions** () button to restore all excluded functions back into the recording.
+To exclude a function from a memory allocation sampling profile, select the sampling profile and then click the **Exclude selected function** () button. The requesting function (parent) of the excluded function (child) is charged with the allocated memory assigned to the excluded function (child).
+
+Click the **Restore all functions** () button to restore all excluded functions back into the recording.
-## View Sampling Profile as Chart
+## View a memory allocation sampling profile as a Chart
The **Chart** view provides a visual representation of the Sampling Profile over time.
-After you [record a Sampling Profile](#record-a-sampling-profile), view the recording as a flame chart by [changing the sort order](#change-sort-order) to **Chart**.
+After you record a memory allocation sampling profile, view the recording as a flame chart. Select **Chart** in the the **Profile view mode** dropdown list (which initially says **Heavy (Bottom Up)**):

@@ -135,6 +175,40 @@ Hover on a function to display the name and timing data:

+
+## Investigate memory allocation, with reduced garbage ("Include objects" checkboxes)
+
+By default, the **Allocation sampling** profiling type only reports allocations that are still alive at the end of the recording session. Objects that are created, removed, and then garbage collected (GC'd) aren't displayed in the **Memory** tool when profiling using the **Allocation sampling** or **Allocations on timeline** profiling types.
+
+You can trust the browser to clean up garbage from your code. However, it is important to consider that GC itself is an expensive operation and multiple GCs can slow down your user's experience of your website or app. When recording in the **Performance** tool with the **Memory** checkbox turned on, you can see the GC operation happen at the steep cliffs (sudden decreases) in the heap chart:
+
+
+
+By reducing the amount of garbage your code is creating, you can reduce the cost of each individual GC and the number of GC operations.
+
+
+
+#### Track objects that are discarded by GC
+
+To track objects that are discarded by garbage collection:
+
+1. In the **Memory** tool, select the **Allocation sampling** option button.
+
+1. Click the **Include objects discarded by major GC** and **Include objects discarded by minor GC** settings.
+
+ 
+
+1. Click the **Start** button.
+
+1. On the webpage, perform actions that you want to investigate.
+
+1. Click the **Stop** button when you have finished all of your actions.
+
+DevTools now tracks all of the objects that were GC'd during the recording. Use these settings to understand how much garbage your website or app is generating. The data reported by **Allocation sampling** will help you identify the functions that are generating the most garbage.
+
+If you are investigating objects that were only GC'd during specific major or minor GC operations, configure the settings appropriately to track the operation you care about. To learn more about the differences between major and minor GC, see [Trash talk: the Orinoco garbage collector | V8 JavaScript engine developer blog](https://v8.dev/blog/trash-talk).
+
+
> [!NOTE]
> Portions of this page are modifications based on work created and [shared by Google](https://developers.google.com/terms/site-policies) and used according to terms described in the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0).
diff --git a/microsoft-edge/devtools-guide-chromium/sample-code/sample-code.md b/microsoft-edge/devtools-guide-chromium/sample-code/sample-code.md
index a575f8f3e3..4dc25015fc 100644
--- a/microsoft-edge/devtools-guide-chromium/sample-code/sample-code.md
+++ b/microsoft-edge/devtools-guide-chromium/sample-code/sample-code.md
@@ -38,7 +38,7 @@ last sync'd April 16, 2024
|:---|:---|:---|:---|
| CSS mirroring sourcemaps | Used for [Update .css files from within the Styles tab (CSS mirror editing)](../../visual-studio-code/microsoft-edge-devtools-extension/css-mirror-editing-styles-tab.md) for the DevTools extension for Visual Studio Code. | [/css-mirroring-sourcemaps-demo/](https://github.com/MicrosoftEdge/Demos/tree/main/css-mirroring-sourcemaps-demo) | n/a |
| TODO app | Simple To Do app with vanilla JavaScript. Used for screenshots in the [Microsoft Edge DevTools documentation](/microsoft-edge/devtools-guide-chromium/landing/), and for [Opening DevTools and the DevTools browser](../../visual-studio-code/microsoft-edge-devtools-extension/open-devtools-and-embedded-browser.md) for the DevTools extension for Visual Studio Code. | [/demo-to-do/](https://github.com/MicrosoftEdge/Demos/tree/main/demo-to-do) | [My tasks](https://microsoftedge.github.io/Demos/demo-to-do/) |
-| Detached elements | Chat-like demo. Used for [Debug DOM memory leaks with the Detached Elements tool](../memory-problems/dom-leaks.md). | [/detached-elements/](https://github.com/MicrosoftEdge/Demos/tree/main/detached-elements) | [Simulate traffic](https://microsoftedge.github.io/Demos/detached-elements/) |
+| Detached elements | Chat-like demo. Used for [Debug DOM memory leaks by using the Detached Elements tool](../memory-problems/dom-leaks.md). | [/detached-elements/](https://github.com/MicrosoftEdge/Demos/tree/main/detached-elements) | [Simulate traffic](https://microsoftedge.github.io/Demos/detached-elements/) |
| 3D View | Used for [Navigate webpage layers, z-index, and DOM using the 3D View tool](../3d-view/index.md). | [/devtools-3d/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-3d) | [Microsoft Edge DevTools 3D View tool demo](https://microsoftedge.github.io/Demos/devtools-3d/) |
| Accessibility testing | Used for [Accessibility-testing features](../accessibility/reference.md). | [/devtools-a11y-testing/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-a11y-testing) | [Animal shelter](https://microsoftedge.github.io/Demos/devtools-a11y-testing/) |
| DevTools issue: animating a CSS property that requires layout | Illustrates the **Issues** and **Elements** tools warning when CSS properties that require layout are animated. | [/devtools-animated-property-issue/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-animated-property-issue) | [Animated CSS property demo](https://microsoftedge.github.io/Demos/devtools-animated-property-issue/) |
@@ -50,7 +50,7 @@ last sync'd April 16, 2024
| Explain Console errors and warnings in Copilot in Edge | Generates errors in the Console that can then be explained by using Copilot in Edge. | [/devtools-explain-error/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-explain-error) | [Explaining console errors demo](https://microsoftedge.github.io/Demos/devtools-explain-error/) |
| Inspect tool | Used for [Analyze pages using the Inspect tool](../css/inspect.md). | [/devtools-inspect/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-inspect) | [Inspect Demo](https://microsoftedge.github.io/Demos/devtools-inspect/) |
| Debugging JavaScript that adds two numbers | Used for [Get started debugging JavaScript](../javascript/index.md). | [/devtools-js-get-started/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-js-get-started) | [Demo: Debugging JavaScript with Microsoft Edge DevTools](https://microsoftedge.github.io/Demos/devtools-js-get-started/) |
-| Memory heap snapshot | Used for [Record heap snapshots using the Memory tool](../memory-problems/heap-snapshots.md). | [/devtools-memory-heap-snapshot/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-memory-heap-snapshot) | n/a |
+| Memory heap snapshot | Used for [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../memory-problems/heap-snapshots.md). | [/devtools-memory-heap-snapshot/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-memory-heap-snapshot) | n/a |
| Performance Activity Tabs | Used for [View activities in a table](../evaluate-performance/reference.md#view-activities-in-a-table), about the **Performance** tool's **Bottom-Up**, **Call Tree**, and **Event Log** tabs. | [/devtools-performance-activitytabs/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-performance-activitytabs) | [Activity Tabs Demo](https://microsoftedge.github.io/Demos/devtools-performance-activitytabs/) |
| Sluggish Animation | Used for [Introduction to the Performance tool](../evaluate-performance/index.md). | [/devtools-performance-get-started/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-performance-get-started) | [Sluggish Animation](https://microsoftedge.github.io/Demos/devtools-performance-get-started/) |
| postMessage Trace Events | Tests `postMessage` trace events in the **Performance** tool. Used for [View messages between windows, iframes, and dedicated workers](../evaluate-performance/reference.md#view-messages-between-windows-iframes-and-dedicated-workers) in _Performance features reference_. | [/devtools-postmessage-perf-timeline/](https://github.com/MicrosoftEdge/Demos/tree/main/devtools-postmessage-perf-timeline) | [postMessage Trace Events demo](https://microsoftedge.github.io/Demos/devtools-postmessage-perf-timeline/) |
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2021/02/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2021/02/devtools.md
index a98b439789..0277577695 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2021/02/devtools.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2021/02/devtools.md
@@ -47,6 +47,7 @@ To turn on the experiment, see [Turning an experiment on or off](../../../experi
The DevTools Tooltips feature helps you learn about all the different tools and panes. Hover over each outlined region of DevTools to learn more about how to use the tool. To turn on Tooltips, do one of the following:
+
* Select **Customize and control DevTools** (`...`) > **Help** > **Toggle the DevTools Tooltips**.
* Press **Ctrl+Shift+H** (Windows, Linux) or **Command+Shift+H** (macOS).
* [Open the Command Menu](../../../command-menu/index.md#open-the-command-menu) and then type **tooltips**.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2021/04/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2021/04/devtools.md
index 8dced98fd2..7524e83762 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2021/04/devtools.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2021/04/devtools.md
@@ -60,6 +60,7 @@ See also:
The DevTools Tooltips feature helps you learn about all the different tools and panes. Hover over each outlined region of DevTools to learn more about how to use the tool. To turn on Tooltips, do any of the following:
+
* Select **Customize and control DevTools** (`...`) > **Help** > **Toggle the DevTools Tooltips**.
* Press **Ctrl+Shift+H** (Windows, Linux) or **Command+Shift+H** (macOS).
* [Open the Command Menu](../../../command-menu/index.md#open-the-command-menu) and then type **tooltips**.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2021/07/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2021/07/devtools.md
index 8ac20d664d..ef7179782e 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2021/07/devtools.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2021/07/devtools.md
@@ -53,16 +53,20 @@ See [Apply color themes to DevTools](../../../customize/theme.md).
+October 2024 update: To debug DOM memory leaks, use either:
+* The **Detached Elements** tool. Detached nodes have a link to the associated JavaScript code.
+* The **Detached elements** profiling type in the **Memory** tool.
+
A DOM node is considered "detached" when it is no longer attached to any element of the DOM but is still being retained in memory by Microsoft Edge. The browser cannot garbage-collect the element, because some JavaScript is still referencing the element even though it's no longer on the page or a part of the DOM.
-The new **Detached Elements** tool finds all of the detached elements on your page and displays them. You can expand and collapse a detached element to see the parent and child nodes that are also being retained. You can trigger the browser's garbage collection by selecting **Collect garbage** and validate that you have a memory leak when a detached element cannot be garbage-collected. Finally, you can jump into JavaScript that's referencing the detached element by taking a heap snapshot with the **Analyze** button.
+The **Detached Elements** profiling type in the **Memory** tool finds all of the detached elements on your page and displays them. You can expand and collapse a detached element to see the parent and child nodes that are also being retained. You can trigger the browser's garbage collection by selecting **Collect garbage** and validate that you have a memory leak when a detached element cannot be garbage-collected. Finally, you can jump into JavaScript that's referencing the detached element by taking a heap snapshot with the **Analyze** button.

Update: This feature has been released and is no longer experimental.
See also:
-* [Debug DOM memory leaks with the Detached Elements tool](../../../memory-problems/dom-leaks.md)
+* [Debug DOM memory leaks by using the Detached Elements tool](../../../memory-problems/dom-leaks.md)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/01/devtools.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/01/devtools.md
index 489c88c3ad..01bea70b3a 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/01/devtools.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/01/devtools.md
@@ -27,17 +27,18 @@ ms.date: 01/14/2022
A DOM node is considered _detached_ when it's no longer attached to any element of the DOM, but is still being retained in memory by Microsoft Edge. The browser cannot garbage-collect the detached element, because some JavaScript object is still referencing the element, even though the element is no longer on the page or is no longer a part of the DOM.
-The new **Detached Elements** tool finds all of the detached elements on your page and displays them. You can expand and collapse a detached element to see the parent and child nodes that are also being retained. You can trigger the browser's garbage collection by clicking the **Collect garbage** icon, and then confirm that you have a memory leak when a detached element cannot be garbage-collected. To jump into the JavaScript code that's referencing the detached element, click the **Analyze** button to take a heap snapshot.
+The new **Detached Elements** feature finds all of the detached elements on your page and displays them. You can expand and collapse a detached element to see the parent and child nodes that are also being retained. You can trigger the browser's garbage collection by clicking the **Collect garbage** icon, and then confirm that you have a memory leak when a detached element cannot be garbage-collected. To jump into the JavaScript code that's referencing the detached element, click the **Analyze** button to take a heap snapshot.
-The **Detached Elements** tool was initially available as an experiment in [Microsoft Edge version 93](../../2021/07/devtools.md#debug-dom-node-memory-leaks-with-the-new-detached-elements-tool). The tool is now available by default in Microsoft Edge version 97.
+The **Detached Elements** feature was initially available as an experiment in [Microsoft Edge version 93](../../2021/07/devtools.md#debug-dom-node-memory-leaks-with-the-new-detached-elements-tool). The feature is now available by default in Microsoft Edge version 97.
-
+
-
+
See also:
-* [Debug DOM memory leaks with the Detached Elements tool](../../../memory-problems/dom-leaks.md)
+* [Tools for investigating detached elements](../../../memory-problems/index.md#tools-for-investigating-detached-elements) in _Fix memory problems_.
+* [Debug DOM memory leaks by using the Detached Elements tool](../../../memory-problems/dom-leaks.md)
* [Debug memory leaks with the Microsoft Edge Detached Elements tool - YouTube](https://www.youtube.com/watch?v=v2iy17ptmBk&ab_channel=MicrosoftEdge)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/03/devtools-100.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/03/devtools-100.md
index c16d6b9e10..3d56bb7811 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/03/devtools-100.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/03/devtools-100.md
@@ -43,7 +43,7 @@ When looking at all the objects in a heap snapshot in the **Memory** tool, it ca

See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md) - taking a heap snapshot and analyzing the heap.
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md) - taking a heap snapshot and analyzing the heap.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/05/devtools-102.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/05/devtools-102.md
index 4f6c0110a6..f27c55c23c 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/05/devtools-102.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/05/devtools-102.md
@@ -59,7 +59,7 @@ The **Memory** tool exports a JSON file that contains all of the string objects

See also:
-* [Save and export strings from a heap snapshot to JSON](../../../memory-problems/heap-snapshots.md#save-and-export-strings-from-a-heap-snapshot-to-json) in _Record heap snapshots using the Memory tool_.
+* [Save and export strings from a heap snapshot to JSON](../../../memory-problems/heap-snapshots.md#save-and-export-strings-from-a-heap-snapshot-to-json) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
@@ -89,7 +89,7 @@ The second and potentially subsequent appearances of the node are still displaye
_Internal nodes_ are objects that are specific to V8 (the JavaScript engine in Microsoft Edge). Internal nodes are also displayed in the **Retainers** section.
See also:
-* [Hide cycles](../../../memory-problems/heap-snapshots.md#hide-cycles) in _Record heap snapshots using the Memory tool_.
+* [Hide cycles](../../../memory-problems/heap-snapshots.md#hide-cycles) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/06/devtools-103.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/06/devtools-103.md
index 1d6140179a..19f26fa768 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/06/devtools-103.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/06/devtools-103.md
@@ -34,7 +34,7 @@ In Microsoft Edge 103, when taking a heap snapshot in the **Memory** tool, there
For history, see [Issue 12769: Improve categorization of objects in heap snapshots](https://bugs.chromium.org/p/v8/issues/detail?id=12769).
See also:
-* [Constructor entries](../../../memory-problems/heap-snapshots.md#constructor-entries) in _Record heap snapshots using the Memory tool_.
+* [Constructor entries](../../../memory-problems/heap-snapshots.md#constructor-entries) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/08/devtools-104.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/08/devtools-104.md
index 1ca57aeae0..eb8be5bbf5 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/08/devtools-104.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/08/devtools-104.md
@@ -64,12 +64,13 @@ See also:
-In previous versions of Microsoft Edge, when selecting the table of detached elements in the **Detached Elements** tool, assistive technology only announced "Table" and the number of rows and columns. In Microsoft Edge version 104, this issue has been fixed. When selecting the table of detached elements in the **Detached Elements** tool, assistive technology now announces "Detached Elements List, Table" and the number of rows and columns.
+In previous versions of Microsoft Edge, when selecting the table of detached elements in the **Detached Elements** feature, assistive technology only announced "Table" and the number of rows and columns. In Microsoft Edge version 104, this issue has been fixed. When selecting the table of detached elements in the **Detached Elements** feature, assistive technology now announces "Detached Elements List, Table" and the number of rows and columns.

See also:
-* [Debug DOM memory leaks with the Detached Elements tool](../../../memory-problems/dom-leaks.md)
+* [Tools for investigating detached elements](../../../memory-problems/index.md#tools-for-investigating-detached-elements) in _Fix memory problems_.
+* [Debug DOM memory leaks by using the Detached Elements tool](../../../memory-problems/dom-leaks.md)
* [Navigate DevTools with assistive technology](../../../accessibility/navigation.md)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2022/10/devtools-107.md b/microsoft-edge/devtools-guide-chromium/whats-new/2022/10/devtools-107.md
index 92cc58fb2a..51ffbd8893 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2022/10/devtools-107.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2022/10/devtools-107.md
@@ -79,7 +79,7 @@ In Microsoft Edge 107, this issue has been fixed. The **Memory** tool can now s
If you still encounter issues when loading large heap snapshots, please open an issue in the [DevTools repo](https://github.com/MicrosoftEdge/DevTools/issues/new?assignees=&labels=bug&template=bug.md)!
See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md)
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md)
* [Issue 9126: Hardcoded memory limits of Map (backed by FixedArray)](https://bugs.chromium.org/p/v8/issues/detail?id=9126)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/01/devtools-109.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/01/devtools-109.md
index fe96db8f43..b57b2d13d9 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/01/devtools-109.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/01/devtools-109.md
@@ -113,8 +113,7 @@ Select both options if you want to track garbage that is being generated by your

See also:
-* [Investigate memory allocation by function](../../../memory-problems/index.md#investigate-memory-allocation-by-function) in _Fix memory problems_.
-* [Reduce garbage with additional settings for allocation sampling](../../../memory-problems/index.md#reduce-garbage-with-additional-settings-for-allocation-sampling) in _Fix memory problems_.
+* [Investigate memory allocation, with reduced garbage ("Include objects" checkboxes)](../../../rendering-tools/js-runtime.md#investigate-memory-allocation-with-reduced-garbage-include-objects-checkboxes) in _Speed up JavaScript runtime ("Allocation sampling" profiling type)_.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/02/devtools-110.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/02/devtools-110.md
index e726cf962c..cfcf8449c2 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/02/devtools-110.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/02/devtools-110.md
@@ -31,7 +31,7 @@ In Microsoft Edge 110, the **Memory** tool is now 70% to 86% faster at taking he

See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md#take-a-snapshot)
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md#take-a-snapshot)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/05/devtools-113.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/05/devtools-113.md
index f6d4637e6d..3d8da9be02 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/05/devtools-113.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/05/devtools-113.md
@@ -83,7 +83,7 @@ Now in Microsoft Edge 113, the **Memory** tool automatically unminifies object n
See also:
* [Securely debug original code by publishing source maps to the Azure Artifacts symbol server](../../../javascript/publish-source-maps-to-azure.md)
* [Securely debug original code by using Azure Artifacts symbol server source maps](../../../javascript/consume-source-maps-from-azure.md)
-* [Take a snapshot](../../../memory-problems/heap-snapshots.md#take-a-snapshot) in _Record heap snapshots using the Memory tool_.
+* [Take a snapshot](../../../memory-problems/heap-snapshots.md#take-a-snapshot) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
@@ -143,7 +143,7 @@ In the **Containment** and **Statistics** views, the **Node Types** filter is no
See also:
* [Filter heap snapshots summary by node type](../../2022/03/devtools-100.md#filter-heap-snapshots-summary-by-node-type) in _What's New in DevTools (Microsoft Edge 100)_
-* [Take a snapshot](../../../memory-problems/heap-snapshots.md#take-a-snapshot) in _Record heap snapshots using the Memory tool_.
+* [Take a snapshot](../../../memory-problems/heap-snapshots.md#take-a-snapshot) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/06/devtools-114.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/06/devtools-114.md
index eb5f0cffe7..abcf3bcce3 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/06/devtools-114.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/06/devtools-114.md
@@ -104,7 +104,7 @@ In Microsoft Edge 114, this issue has been fixed, by ensuring that consistent ob

See also:
-* [View snapshots](../../../memory-problems/heap-snapshots.md#view-snapshots) in _Record heap snapshots using the Memory tool_.
+* [View snapshots](../../../memory-problems/heap-snapshots.md#view-snapshots) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
* [Change List 4278992: Produce consistent IDs for Oilpan objects in heap snapshots](https://chromium-review.googlesource.com/c/v8/v8/+/4278992)
* [Issue 1286500: Heap snapshot comparison incorrectly reports large numbers of new and deleted objects](https://bugs.chromium.org/p/chromium/issues/detail?id=1286500)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/07/devtools-115.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/07/devtools-115.md
index 19fb04326b..0353c48c5e 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/07/devtools-115.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/07/devtools-115.md
@@ -72,7 +72,7 @@ See also:
-In previous versions of Microsoft Edge, in the **Memory** tool, when using the **Allocation instrumentation on timeline** option, the **Memory** tool takes a sample of the heap every 50 milliseconds. However, taking a sample of the heap scales with the size of the heap, so with a heap size of 200 MB, the sample actually takes 1.5 seconds to generate. As a result, there's little time left on the main thread for your website, outside of generating heap samples. When **Allocation instrumentation on timeline** is running, it might look like your web content is hanging or blocked.
+In previous versions of Microsoft Edge, in the **Memory** tool, when using the **Allocation instrumentation on timeline** profiling type (later re-labelled as the **Allocations on timeline** option button), the **Memory** tool takes a sample of the heap every 50 milliseconds. However, taking a sample of the heap scales with the size of the heap, so with a heap size of 200 MB, the sample actually takes 1.5 seconds to generate. As a result, there's little time left on the main thread for your website, outside of generating heap samples. When **Allocation instrumentation on timeline** is running, it might look like your web content is hanging or blocked.
In Microsoft Edge 115, the sample rate for the heap now scales to the time it takes to generate a sample, freeing up the main thread so that you can interact with your web content while profiling.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2023/08/devtools-116.md b/microsoft-edge/devtools-guide-chromium/whats-new/2023/08/devtools-116.md
index 00b30d681e..6c22c618e8 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2023/08/devtools-116.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2023/08/devtools-116.md
@@ -74,8 +74,8 @@ For example:
1. In the **Object** column, expand an entry.
See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md)
-* [Demo webpage: Example 9: DOM leaks bigger than expected](../../../memory-problems/heap-snapshots.md#demo-webpage-example-9-dom-leaks-bigger-than-expected) in _Record heap snapshots using the Memory tool_.
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md)
+* [Demo webpage: Example 9: DOM leaks bigger than expected](../../../memory-problems/heap-snapshots.md#demo-webpage-example-9-dom-leaks-bigger-than-expected) in _Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)_.
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2024/03/devtools-123.md b/microsoft-edge/devtools-guide-chromium/whats-new/2024/03/devtools-123.md
index 7f061765f8..dbfe9c4be0 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2024/03/devtools-123.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2024/03/devtools-123.md
@@ -43,7 +43,7 @@ Heap snapshots with the new experiment enabled:
This experiment is helpful because heap snapshots in the Memory tool show a complete list of everything allocated in the V8 and Blink heaps. Sometimes that list is a little too fine-grained, breaking out an item as if it is multiple items. For example, the list in the heap snapshot represents each JavaScript `Array` instance separately from the contents of that `Array`, which are called `(object elements)[]`. However, in JavaScript code, an `Array` is a single entity, rather than an array instance and separate contents of the array.
See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md)
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md)
diff --git a/microsoft-edge/devtools-guide-chromium/whats-new/2024/08/devtools-128.md b/microsoft-edge/devtools-guide-chromium/whats-new/2024/08/devtools-128.md
index 8a0ece22f9..12efc1f773 100644
--- a/microsoft-edge/devtools-guide-chromium/whats-new/2024/08/devtools-128.md
+++ b/microsoft-edge/devtools-guide-chromium/whats-new/2024/08/devtools-128.md
@@ -64,7 +64,7 @@ In the **Memory** tool, there are several improvements for heap snapshots:
* The **Include numerical values in capture** checkbox (shown before you take a heap snapshot) has been removed, and heap snapshots now always show numeric values.
See also:
-* [Record heap snapshots using the Memory tool](../../../memory-problems/heap-snapshots.md)
+* [Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)](../../../memory-problems/heap-snapshots.md)
diff --git a/microsoft-edge/toc.yml b/microsoft-edge/toc.yml
index 568c74425c..651663e974 100644
--- a/microsoft-edge/toc.yml
+++ b/microsoft-edge/toc.yml
@@ -500,7 +500,7 @@
# Detached Elements tool ------------------------------------------------------
- name: Detached Elements tool
items:
- - name: Debug DOM memory leaks with the Detached Elements tool # added article
+ - name: Debug DOM memory leaks by using the Detached Elements tool # added article
href: devtools-guide-chromium/memory-problems/dom-leaks.md
displayName: Detached Elements tool
# Developer Resources tool ----------------------------------------------------
@@ -544,18 +544,25 @@
href: devtools-guide-chromium/memory-problems/memory-101.md
displayName: Memory tool
- - name: Record heap snapshots using the Memory tool
+ - name: Monitor memory use in realtime (Microsoft Edge Browser Task Manager)
+ href: devtools-guide-chromium/memory-problems/microsoft-edge-browser-task-manager.md
+
+ - name: Record heap snapshots using the Memory tool ("Heap snapshot" profiling type)
href: devtools-guide-chromium/memory-problems/heap-snapshots.md
- displayName: Memory tool
+ displayName: Memory tool
- - name: Use Allocation instrumentation on timeline
+ - name: Use Allocation instrumentation on timeline ("Allocations on timeline" profiling type)
href: devtools-guide-chromium/memory-problems/allocation-profiler.md
displayName: Memory tool
- - name: Speed up JavaScript runtime
+ - name: Speed up JavaScript runtime ("Allocation sampling" profiling type)
href: devtools-guide-chromium/rendering-tools/js-runtime.md
displayName: Memory tool
+ - name: Debug DOM memory leaks ("Detached elements" profiling type)
+ href: devtools-guide-chromium/memory-problems/dom-leaks-memory-tool-detached-elements.md
+ displayName: Memory tool
+
- name: The heap snapshot file format
href: devtools-guide-chromium/memory-problems/heap-snapshot-schema.md
displayName: Memory tool