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 -~----------~----~----~----~------~----~------~--~---
