summaryrefslogtreecommitdiffstats
path: root/chromium/docs/website/site/developers/leak-detection/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/docs/website/site/developers/leak-detection/index.md')
-rw-r--r--chromium/docs/website/site/developers/leak-detection/index.md80
1 files changed, 0 insertions, 80 deletions
diff --git a/chromium/docs/website/site/developers/leak-detection/index.md b/chromium/docs/website/site/developers/leak-detection/index.md
deleted file mode 100644
index a380506068a..00000000000
--- a/chromium/docs/website/site/developers/leak-detection/index.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-breadcrumbs:
-- - /developers
- - For Developers
-page_name: leak-detection
-title: Leak Detection
----
-
-When launching a new feature it is important to consider doing manual inspection
-to look for memory leaks since some types of leaks will not easily show up
-during other testing, especially if they are slow leaks. This can avoid bugs
-which are otherwise difficult to detect.
-
-You can look for memory leaks on Windows using ETW heap tracing using
-[UIforETW](https://randomascii.wordpress.com/2015/09/01/xperf-basics-recording-a-trace-the-ultimate-easy-way/),
-an open-source wrapper for Microsoft's ETW/WPT toolkit. To set up for heap
-tracing you need to download and run UIforETW, then:
-
-* Click on Settings and set "Heap-profiled processes" to chrome.exe,
- check "Chrome developer", then close Settings
-* Change the tracing type (just below "Input tracing") to "Heap
- tracing to file"
-* Close all unnecessary programs including other copies of Chrome in
- order to reduce the trace size and noise
-* If you need to record allocations that happen during startup then
- start tracing and then launch Chrome. If not then you should launch
- Chrome and wait for its startup activity to calm down. If you launch
- Chrome with a minimal set of tabs then this will reduce the trace
- size and noise
-* When you are ready to test your feature then type Ctrl+Win+R (with
- any window active) or click "Start Tracing" in UIforETW
-* Run your test a few times, let Chrome go idle again, and then type
- Ctrl+Win+R (with any window active) or click "Save Trace Buffers" in
- UIforETW
-
-Tips for efficient tracing:
-
-* If you want to just heap-profile a renderer process then you should
- launch Chrome *before* setting the tracing type. This will ensure
- that heap tracing is disabled for the browser, GPU, utility,
- extension, crashpad, and watcher processes. Only processes launched
- *after* you change the tracing type to "Heap tracing to file" will
- be heap traced, and only allocations/frees done after you start
- tracing will be recorded.
-* If you are only going to be looking at heap data then uncheck
- "Context switch call stacks" and "CPU sampling call stacks" in order
- to keep the trace as small as possible
-
-These trace analysis instructions are very terse because a full explanation
-would require many pages. If you need assistance then please contact
-brucedawson@chromium.org.
-
-If you have Python installed then IdentifyChromeProcesses.py will be run and a
-list of Chrome process types and PIDs will be printed, which helps with
-identifying the browser process, etc. If you need to identify a specific render
-process PID then use Chrome's Task Manager. You can copy the trace to a
-different machine for analysis, and you can manually run
-IdentifyChromeProcesses.py on that machine by right-clicking on the trace name
-and selecting Scripts-> Identify Chrome Processes.
-
-Open the trace in WPA. The default view is designed for analyzing performance
-rather than allocations so you will want to use HeapAnalysis.wpaProfile from
-UIforETW's bin directory (available in versions published in September 2018 or
-later). You can apply this profile by going to the Profiles menu in WPA,
-selecting Apply... and then browsing to the .wpaProfile file. Load symbols
-(Trace-> Load Symbols) and you can then drill down into the allocations for
-the process of interest. The Type column will usually list AIFI and AIFO types.
-AIFI means Allocated Inside and Freed Inside - meaning that the allocation was
-transient within the visible time range. AIFO means Allocated Inside and Freed
-Outside meaning that the memory was allocated but not freed within the visible
-time range. AIFO allocations are potential leaks. You can drill down through the
-stack, sorting by Count, or Size, or you can search for particular symbols by
-typing Ctrl+F when the Stack column is selected.
-
-The allocation times for the selected portion of stack will be highlighted in
-the graph area, giving clues to patterns. These can be compared against input
-events emitted by UIforETW.exe.
-
-It is also possible to use Visual Studio's heap profiler. This is particularly
-convenient for profiling the browser process at startup. \ No newline at end of file