注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

写着玩

Bob

 
 
 

日志

 
 
 
 

net-internals  

2010-01-10 22:31:57|  分类: Chrome |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Overview

The "chrome://net-internals/" webpage is a special URL in chromium that dumps a view of the network stack's internal state.

This data can be helpful when debugging performance or connectivity problems.

It includes information on request performance, proxy settings and DNS cache.

URL Format

The URL format is:

"chrome://net-internals/filter

If filter is blank then all of the information will be displayed. Otherwise filter should be the name of a subsection.

Subsections are organized hiearchically, and use dotted names.

For example, to see all of the information relating to proxies use the URL "chrome://net-internals/proxyservice". Whereas to print just the proxy settings construct the URL "chrome://net-internals/proxyservice.config".

LoadLog format

Much of the information on the "chrome://net-internals/" page is captured and visualized using a "LoadLog" (src/net/load_log.h).

The LoadLog is simply an event stream showing when various actions were started/completed.

Here is an example LoadLog:

t=1814517460: +INIT_PROXY_RESOLVER                    [dt=45]  t=1814517460:   +INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT [dt= 3]  t=1814517463:   -INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT  t=1814517463:   +INIT_PROXY_RESOLVER_SET_PAC_SCRIPT   [dt=42]  t=1814517506:   -INIT_PROXY_RESOLVER_SET_PAC_SCRIPT  t=1814517506: -INIT_PROXY_RESOLVER
  • The t=* numbers in the left colum show the time when an event occurred (in milliseconds of the system tickcount).
  • The + symbol besides an event type indicates the start of that event.
  • The - symbol besides an event type indicates the completion of that event.
  • The elapsed time between the start and completion of an event type is shown to the right of the start of that event, as dt=*.
    • For example, the entire INIT_PROXY_RESOLVER action took a total of 45 milliseconds (from t=1814517460 until t=1814517506).
  • The meanings of events like INIT_PROXY_RESOLVER are explained by load_log_event_type_list.h
So, the example above reads as: "It took 45 ms to initialize the proxy resolver -- 3 seconds to download the PAC script (INIT_PROXY_RESOLVER_FETCH_PAC_SCRIPT), and 42 milliseconds to parse and test it (INIT_PROXY_RESOLVER_SET_PAC_SCRIPT)".

Caveats

Generally the entries in a LoadLog are ordered chronologically.

However, there are some instances when this isn't the case.

For example, with TCP socket "late binding", the request's LoadLog will first show a SOCKET_POOL_WAITING_IN_QUEUE event. Only once the ConnectJob completes will the SOCKET_POOL_CONNECT_JOB sequence be appended to the log for this request. (hence the times within the SOCKET_POOL_CONNECT_JOB sequence may predate the preceding line).

Subsection: proxyservice.config

This subsection shows the effective proxy settings that Chromium is using.

Generally this will correspond to the system's proxy settings, or an override that was specified on the command line

Here is example of what it looks like:

Automatic settings:    Auto-detect: Yes    Custom PAC script: http://custom/pac.js  Manual settings:    Proxy server: single-proxy:81    Bypass list: [None]    Bypass local names: No
If there is a proxy server per URL scheme, then the "Proxy server" section will break it down by HTTP/HTTPS/FTP/SOCKS.
When there is conflicting choices between the "Automatic settings" and "Manual settings", the proxy settings fallback from automatic to manual similarly to IE.

Subsection: proxyservice.init_log

This subsection shows the proxy initialization sequence that happened for the current proxy settings.

This initialization sequence gets run each time the proxy settings change (and is responsible for things like downloading and testing custom PAC scripts).

Generally this latency will be attributed to the very first network request that chromium issues. It will show up in the requests's LoadLog as PROXY_SERVICE_WAITING_FOR_INIT_PAC. The specifics of that latency are shown in proxyservice.init_log.

Subsection: hostresolver.hostcache

This subsection shows the DNS cache that Chromium is using.

  • Red entries are lookups which failed, (and will not be used)
  • Blue entries are ones which have already expired, (and will not be used)
  • Black entries are entries with a positive TTL that will be used.

Note that a single IP address is printed for each entry, but in reality there may be a full list of network addresses associated with this cache entry

Subsection: urlrequest.outstanding

This subsection shows the requests which are currently in progress.

It is ordered from most recent to oldest.

Check this to find the LoadLog of hung requests.

Note that the request to load "chrome://net-internals/" itself will always show up as an outstanding request (since it is outstanding when we execute the code that populates this subsection).

Subsection: urlrequest.recent

This subsection shows the most recent requests that have completed.

It is ordered from most recent (completion time) to oldest (completion time).

Check this to find the Load log for a recently issued request.

  评论这张
 
阅读(984)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017