Proposal: Out-of-process V8 proxy resolver

2,621 views
Skip to first unread message

Anand K. Mistry

unread,
Jan 29, 2015, 6:35:34 PM1/29/15
to net...@chromium.org, mojo...@chromium.org
Hi all,

I've written a proposal for having an out-of-process v8 proxy resolver for Chrome. Take a look, comment if you want.

You might have seen my proposal yesterday for the utility process. Although there is some overlap, consider the two separate.

ami...@google.com

unread,
Mar 16, 2015, 6:04:59 AM3/16/15
to net...@chromium.org, mojo...@chromium.org, ami...@chromium.org
A quick update for anyone that's interested.

We now have an implementation of out-of-process v8 proxy resolver. Basic functionality is complete, and I've tested it with a very complex PAC script. However, there's a fair bit of work to be done before it can be turned on by default. For one, it currently doesn't re-start the process if it dies for any reason.

You can turn it by either passing --v8-pac-mojo-out-of-process on the command line, or turning on the "Enable Out-of-process V8 Proxy Resolver" setting in about:flags.

If you're curious about the code, grep for mojo in //net, or look at the changes on crbug.com/11746. If you have any questions or concerns, tell me. If you notice any bugs, file a bug and assign to me.

Sam McNally

unread,
Mar 19, 2015, 3:40:17 AM3/19/15
to net...@chromium.org, mojo...@chromium.org, ami...@chromium.org
Here are some performance numbers. These are median proxy resolution times in microseconds as seen by ProxyService when loading www.theverge.com three times along with any other requests going on in the background:
trivial script, in-process: 240.0
trivial script, out-of-process: 844.0
complex script, in-process: 995.5
complex script, out-of-process: 1972.5

Ryan Sleevi

unread,
Mar 19, 2015, 4:19:51 AM3/19/15
to Sam McNally, Anand Mistry, mojo...@chromium.org, net...@chromium.org

That's a pretty significant performance gap.

Is that resolving the proxy for www.theverge.com, or all sub resources as well?

I'm just wanting to make sure I understand that you're saying that's the median time for a single fetch of a resource, of which during load there may be multiple fetches - and thus such times multiply even further; it's not like we're haggling over 600 microseconds but potentially on the order of seconds for resource heavy loads.

--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAJqEsoCQB-njfP%2BsQVPvk9TyzNXwRnKr4eC8_v3s9847Td4a_w%40mail.gmail.com.

Sam McNally

unread,
Mar 19, 2015, 7:25:07 PM3/19/15
to rsl...@chromium.org, Anand Mistry, mojo...@chromium.org, net...@chromium.org
It's a median over the main page and its subresources; for www.theverge.com there were around 300 over the three runs. These requests do run in parallel so it isn't simply a matter of looking at the sum of differences. The time to load www.theverge.com with a cleared cache varies by up to 10 seconds across runs so I don't think we can use it to discover any user-facing impact of this change.

For www.google.com.au, the DOMContentLoaded and Load times don't seem to be significantly affected:
In-process:
DOMContentLoaded: 306ms 299ms 303ms
Load: 1.34s 1.26s 1.31s

Out-of-process:
DOMContentLoaded: 302ms 296ms 345ms
Load: 1.26s 1.23s 1.37s

On Thu, 19 Mar 2015 at 19:19 Ryan Sleevi <rsl...@chromium.org> wrote:

That's a pretty significant performance gap.

Is that resolving the proxy for www.theverge.com, or all sub resources as well?

I'm just wanting to make sure I understand that you're saying that's the median time for a single fetch of a resource, of which during load there may be multiple fetches - and thus such times multiply even further; it's not like we're haggling over 600 microseconds but potentially on the order of seconds for resource heavy loads.

On Mar 19, 2015 12:40 AM, "Sam McNally" <sa...@chromium.org> wrote:
Here are some performance numbers. These are median proxy resolution times in microseconds as seen by ProxyService when loading www.theverge.com three times along with any other requests going on in the background:
trivial script, in-process: 240.0
trivial script, out-of-process: 844.0
complex script, in-process: 995.5
complex script, out-of-process: 1972.5

On Mon, 16 Mar 2015 at 21:05 amistry via mojo-dev <mojo...@chromium.org> wrote:
A quick update for anyone that's interested.

We now have an implementation of out-of-process v8 proxy resolver. Basic functionality is complete, and I've tested it with a very complex PAC script. However, there's a fair bit of work to be done before it can be turned on by default. For one, it currently doesn't re-start the process if it dies for any reason.

You can turn it by either passing --v8-pac-mojo-out-of-process on the command line, or turning on the "Enable Out-of-process V8 Proxy Resolver" setting in about:flags.

If you're curious about the code, grep for mojo in //net, or look at the changes on crbug.com/11746.  If you have any questions or concerns, tell me. If you notice any bugs, file a bug and assign to me.

--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+unsubscribe@chromium.org.
Reply all
Reply to author
Forward
0 new messages