Summary

In the chromium trunk builds later than r25926, there is a new info page,
"view-net-internal:"(also aliased by "about:net-internal")
The net internals page gives a view into the network stack's internal state.

Most notably it includes per-request profiling information (
http://crbug.com/14478).

What is it for?

The main goal of this tool is to help investigate network performance and
jankiness problems.

After a page has loaded slowly (or while it is hung), you can navigate to
"view-net-internal:" and see what chromium's network stack was/is doing for
that URL.

For more on the motivation see http://crbug.com/14478.

What can it do?

Some of the questions it can answer:

   - How much time was spent opening the HTTP cache entry for the request?
   - How much time was spent waiting for access to an HTTP cache entry for
   the request?
    - How much time was spent waiting for a socket to free if we were maxed
   out on sockets per host?
   - How much time was spent on the first request deciding what PAC script
   to use?
   - How much time was spent resolving the hostname?
   - How much time was spent resolving the proxies?
   - How much time was spent by a custom PAC script resolving hostnames
   (dnsResolve())?
   - How much time was spent downloading/testing the http://wpad/wpad.dat proxy
   script?
   - How much time was spent initiating a TCP connection?
   - How much time was spent transferring the HTTP headers from the server?
   - What hostnames does Chromium have cached in the DNS cache? When will
   they expire?
   - What other requests are flowing through the network stack
   (safe-browsing, navsuggest, etc..)

How do I use it?

   - Get a chromium build later than r25926 (it works to some extend on
   earlier builds too, but not as complete).
   - Navigate to "view-net-internal:" or  "view-net-internal:SUBSECTION"
   (you can do this after the anomaly has occurred).
   - If you see strange timings or events let us know (bug report, or you
   can ping me on #chromium IRC).

The log format is intentionally plain text to make it easy to copy-paste
into bug reports.

For more information on what all the values mean, see the help page for
view-net-internal<http://sites.google.com/a/chromium.org/dev/developers/design-documents/view-net-internal>
.




How is this different from UMA histograms?

   - Histograms aggregate across all requests, whereas view-net-internal
   groups events sequentially, per request.
   - UMA histograms help to understand the overall trend, whereas
   "view-net-internal:" helps to understand the outliers, on a specific user's
   system.
   - UMA metrics are uploaded, whereas the information in
   "view-net-internals:" is local only.

How is this different from network analyzers like Wireshark?

   - "view-net-internal:" captures its data passively, so there is no need
   to anticipate the problem by first enabling capturing.
   - Packet capturing doesn't explain the non-network latencies seen by the
   application, like HTTP cache, PAC execution, maximum sockets per host
   constraint, single-threaded contention for resources, etc.



More polish to come in the future. (Also need to sort out the non-functional
about:network, which displayed different stuff.)

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to