web-dev-qa-db-ja.com

Firebug Net Panelの「ブロック」の意味は何ですか?

私はFirebug 1.5.2を使用していますが、実稼働リリース前にサイトをテストしていると、リクエストの「ブロック」部分によって膨大な時間が消費されることがわかります。

「ブロッキング」とはどういう意味ですか?

46
enerB

以前の「ブロック」(以前のバージョンのFireBug)は「キューイング」と呼ばれていました。実際には、リクエストが利用可能な接続を待っているキューに座っていることを意味します。 Firefoxの最新バージョンでは、デフォルトで永続的な接続の数が6に制限されていることを知っている限り、IE8も6です。以前は2でした。ブラウザの設定でユーザーが変更できます。
[。

29
Maxym

ブロッキングは、他のイベントまたはコードの処理を(同じスレッド内で)停止するイベントを記述するために使用される用語です。

たとえば、「ブロッキング」ソケットを使用する場合、ソケット要求が行われた後のコードは、要求が完了するまで(同じスレッド内で)処理されません。

非同期アクティビティ(非ブロッキング)は、リクエストを単に行い、リクエストがバックグラウンドで発生している間、他のコードを実行させます。

あなたの状況では、基本的に、firebugの特定の部分/ブラウザは、他の部分が完了するまでアクティブ化できないことを意味します。つまりさらにダウンロードする前に、イメージがダウンロードされるのを待っています。

5
Chris

私の知る限り、2つの理由により、コンポーネントが他のコンポーネントのロードをブロックします。

  1. 一度に特定のホストからロードできる並列リソースの数のブラウザーの強制された(ただし、通常は構成可能な)制限。
  2. インラインjavascript。これにより、ブラウザが待機して、残りのコンポーネントのダウンロードを続行する必要があるかどうかを確認できます(javascriptがページのコンテンツをリダイレクトまたは置換する場合)
4

「接続を待機する」ことを意味します。公式の Mozillaによるドキュメント で説明されているように、「ブロック」は「ネットワーク接続を待機しているキュー。」これは、Firefoxが内部の並列接続の制限に達したことが原因である可能性があります。これについては、こことその回答で説明しています。

「サーバーがビジー状態であるため待機する」ことも意味します。上記の公式ドキュメントでは、「ブロック」時間の考えられる理由の1つが欠落しています。サーバーが過負荷状態であるため、その時点で接続を提供できない場合。その場合、ワーカープロセスが解放されると処理できるようになるまで、接続要求はサーバー上のキューに入ります[ source ]。

技術的な意味では、要求はサーバー[ source ]からのaccept()を待機しているため、そのような接続はまだ確立されていません。そして、それが「ネットワーク接続を待機するキューで費やされた時間」と見なされる可能性があるため、Firefoxによって「ブロック」に含まれる理由です。

(この動作はFirefox 51の時点では完全に一貫していません:新しいタブで呼び出された最初のURLの場合、サーバーが接続要求を受け入れるまでの時間は「タイミング」タブではまったくカウントされません。 。両方の動作のいずれかがバグになる可能性がありますが、どちらがバグかわかりません。)

1
tanius