New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 733336 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit 26 days ago
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

Experiment with out-of-process heap profiling

Project Member Reported by brettw@chromium.org, Jun 14 2017

Issue description

We would like to experiment with storing heap profiling data in a separate process. This will avoid perturbing the instrumented process as much and will allow additional capabilities.

 
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 15 2017

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

commit 1664378033de651755a3b4e46ec9690600dc8873
Author: Brett Wilson <brettw@chromium.org>
Date: Thu Jun 15 18:01:09 2017

Launch browser when --memlog is specified on the command line.

This communicates a pipe name to the launched process which is propagated to child processes. It is not yet used.

The current process topology is the profiling process launches the browser which then runs like normal. In a later pass I will change this to have the browser process launch the profiling process when the flag is set. I believe this topology will be required for certain platforms. But it will require more plumbing for "process hosts" and mojo pipes that will take more time and don't need to block the current work.

BUG= 733336 
R=ajwong@chromium.org, borisv@chromium.org

Review-Url: https://codereview.chromium.org/2937133002 .
Cr-Commit-Position: refs/heads/master@{#479754}

[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/app/chrome_main.cc
[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/common/chrome_switches.cc
[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/common/chrome_switches.h
[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/profiling/BUILD.gn
[add] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/profiling/DEPS
[add] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/profiling/profiling_globals.cc
[add] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/profiling/profiling_globals.h
[modify] https://crrev.com/1664378033de651755a3b4e46ec9690600dc8873/chrome/profiling/profiling_main.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 16 2017

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

commit 32f79a03c84b1be1ab5f1216112a1658fd864a54
Author: brettw <brettw@chromium.org>
Date: Fri Jun 16 02:30:53 2017

Add pipe implementation for OOP memory logging

These pipes are not currently hooked up.

The sender pipe just connects to a known Windows named pipe and has a send capability. The receiver has a server that waits on Windows I/O completion ports for connections, then associates those connections with a receiver pipe.

We will investigate converting this to a Mojo EDK pipe in a second phase.

The pipes will need very different implementations per-platform, but we won't need to switch them. As a result, I put the Windows implementation in _win.* files, but didn't do any virtual base classes or anything and just named the classes without the Win suffix. In my previous implementation I did some more separation that I didn't find gave any more flexibility.

BUG= 733336 

Review-Url: https://codereview.chromium.org/2940003002
Cr-Commit-Position: refs/heads/master@{#479927}

[modify] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/BUILD.gn
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/BUILD.gn
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/memlog_sender_pipe.h
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/memlog_sender_pipe_win.cc
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/memlog_sender_pipe_win.h
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/memlog_stream.cc
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/common/profiling/memlog_stream.h
[modify] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/BUILD.gn
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/memlog_receiver_pipe_server_win.cc
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/memlog_receiver_pipe_server_win.h
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/memlog_receiver_pipe_win.cc
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/memlog_receiver_pipe_win.h
[add] https://crrev.com/32f79a03c84b1be1ab5f1216112a1658fd864a54/chrome/profiling/memlog_stream_receiver.h

Status: Fixed (was: Started)

Sign in to add a comment