web-dev-qa-db-ja.com

タブまたはMacのFirefoxのアドオンでCPU使用率を確認します

私のバージョンのFirefoxには、数分後にMacBook Pro(OSX 10.7.4)で100%CPUを使用する暴走プロセス/スレッドがあります。 about:memoryabout:addons-memoryを使用して問題の原因を突き止めようとしましたが、メモリ使用量とはまったく関係がないようです。代わりに、タブまたはアドオンでCPU使用率を確認する方法はありますか?

13
claire

実際、about:memoryタブにはタブごとのメモリ割り当てが表示されます。理解するのは少し難しいです。

about:memoryに移動すると、階層的に配置されたメモリ割り当てのリストが表示されます。リストの最初の最上位項目は明示的な割り当てである必要があります。その下にはいくつかのリーフノードがあります。あなたが探しているのはwindow-objectsです。その下で、「top」というラベルの付いたノードのほとんどはタブを参照します(Webサイトをロードすると、「top」の横にアドレスが表示されます)。たとえば、次のようになります。

├───29.63 MB (15.27%) -- window-objects
│   ├──12.64 MB (06.52%) ++ top(chrome://browser/content/browser.xul, id=3)
│   ├───6.84 MB (03.53%) ++ top(http://www.cnn.com/, id=31)
│   ├───4.55 MB (02.35%) ++ top(https://ftp.mozilla.org/, id=24)
│   ├───3.50 MB (01.80%) ++ (5 tiny)

前面の数値はメモリ使用量であり、Firefoxの全体的なメモリ使用量のパーセンテージとしても示されます。

アドオンのメモリ使用量も表示されますが、アドオンによって明示的には表示されません。アドオンに属するすべてのコンポーネントを見つけてメモリ割り当てを合計することにより、リストを検索してそれを把握する必要があります。

注:私はベータチャネルを使用しています(現在Firefox 22.0b2を使用しています)が、これは古いリリースでも機能すると思います。

6
InnerPortal

FirefoxでCPU使用率が高くなる理由はいくつかありますが、以下で詳しく説明します。

1。アドオン

CPUの問題の通常の原因は、悪いアドオンです。最初に行うべきテストは、アドオンなしでFirefoxを起動することです。

From セーフモードを使用したFirefoxの問題のトラブルシューティング

Firefoxウィンドウの上部にある[Firefox]ボタンをクリックし、[ヘルプ]メニューに移動して、[Restart with Add-ons Disabled...]を選択します。 Firefoxは、Firefoxのセーフモードダイアログで起動します。注:Firefoxの起動中にShiftキーを押したままにして、セーフモードでFirefoxを起動することもできます。

現在、2つのオプションがあります。

[セーフモードで開始]ボタンをクリックすると、拡張機能とテーマが一時的に無効になり、ハードウェアアクセラレーションがオフになり、ツールバーとボタンのカスタマイズがリセットされます。セーフモードを終了してFirefoxを通常どおり起動すると、拡張機能、テーマ、および設定は、セーフモードに入る前の状態に戻ります。

セーフモードでCPUに問題がない場合、問題はアドオンの1つにあります。メニューTools > Add-onsを使用して、アドオンを選択的に無効にし、問題のあるアドオンが見つかるまでFirefoxを再起動できます。

2。フラッシュ

フラッシュはそのような問題で知られています。これを修正する通常の方法の1つは、 Firefoxのハードウェアアクセラレーションを無効にする メニューTools > Options、[詳細設定]タブを使用して、Use Hardware Acceleration When Availableのチェックを外すことです。

表示しているページでFlashなどの不要な要素を選択的にブロックするには、2つのアドオン Adblock PlusNoScript をお勧めします。

3.JavaScript

タブの1つで表示しているWebサイトのJavaScriptが正しくコーディングされておらず、ループによってCPUが浪費されている可能性があります。

最善の解決策は、NoScriptを使用して、信頼できないWebサイトからJavaScriptを実行しないようにすることです。これは、誰もが回避するために使用する必要があるセキュリティ対策でもあります クロスサイトスクリプティング エクスプロイト。

4。プロファイリング

どのWebサイトが高いCPUを引き起こしているのかが非常に不明な場合は、Firefoxでプロファイリングを使用できますが、これは簡単な演習ではありません。

プロファイリングも行うデバッガーは次のとおりです。

開発者であり、冒険のように感じている場合、Macを使用しているので、 DTraceを使用したJavaScriptのパフォーマンス/最適化 で説明されているように DTrace を使用できます。 Mozilla開発者が使用するツール。

5
harrymc

@claire:現在、必要なものを確認するための「簡単な」方法はありません。 harrymcの道を進むと、問題の原因に関する情報がいくつか見つかりますが、確かではないかもしれません。

Firefoxやプラグイン内でCPUを消費していることを示す「ハード」な方法を実行したい場合は、環境でFirefoxのデバッグを開始する必要があります(Firefoxやプラグイン自体だけではない場合もあります。しかし、彼らが依存している破損したライブラリ)。プログラミングについてのアイデアがあれば、これを行うためのホットについての完全な説明があります。 XCodeはAppleから無料でダウンロードできます。

https://developer.mozilla.org/en-US/docs/Debugging_on_Mac_OS_X

ただし、Mozillaコード全体をデバッグする必要はありませんが、CPU使用率の上昇と相関関係がある点がわかります。これにより、問題の原因を正確に知ることができます(ループの不良など)。

3
Jimmy Koerting

何らかの理由でFirefoxがCPU使用率をすべて消費している場合は、その数を制限することができます。プロセッサの数と、CPU使用率を削減するためにCPUがそのプロセスに与える優先順位。

これを行うには、(Ctrl+Alt+Del)タスクマネージャを開き、[プロセス]タブ(すべてのプロセスとその拡張子が表示されているタブ(基本的にはWindowsの場合、すべてのプロセスは.exe拡張子で終わる必要があります)をクリックします)。それを右クリックして優先度を選択優先度を設定します(通常よりも高く設定されている場合は通常に設定します。それ以外の場合は通常に設定されており、通常よりも低い値を選択するよりも低くしたい場合)およびアフィニティを設定そのプロセスに寄与するプロセッサの数を制限します。必要なプロセッサの数を設定し、[OK]をクリックして戻ります。これが機能するかどうかを確認します。

これはマルチプロセッサコンピューター(デュアルコア、クアッドコアなど)でのみ機能し、CPU使用率はメモリ使用量とは異なることに注意してください。

1
Hunter