タブまたはMac上のFirefoxのアドオンでCPU使用率を確認する[複製]


13

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

回答:


6

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

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

├───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を使用しています)、これは古いリリースでも動作すると信じています。


おかげで、メモリリークに気付くことはありませんでした。メモリはほぼ一定のままであるようです。しばらくすると、CPUが急上昇してそのままになります。
クレア

11
質問は、メモリではなくCPU使用率に関するものでした。
laggingreflex

@laggingreflex:はい、知っています。私は「しかし、それはメモリ使用量とはまったく関係がないようだ」と言っていました。しかし、振り返ってみると、クレアは実際には「メモリ」ではなく「CPU」を意味していたかもしれません。
InnerPortal

Firefox 38(Linux上で実行)では、説明するツリーを生成して表示するには、Measure下をクリックShow Memory Reportsする必要がありました。(これがすべてのプラットフォームで同じ場合、答えがもう少し完全になる可能性があります。)
joeytwiddle

5

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

1.アドオン

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

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

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

次の2つのオプションがあります。

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

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

2.フラッシュ

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

2つのアドオンAdblock PlusNoScriptは、表示しているページでFlashを含む不要な要素を選択的にブロックするために推奨されます。

3.JavaScript

タブの1つで表示しているWebサイトのJavaScriptのコーディングが不適切で、ループによってCPUが無駄になっている可能性があります。

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

4.プロファイリング

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

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

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


3

@claire:あなたが望むものを見るための「簡単な」方法は現在ありません。harrymcの方法を使用する場合、問題の原因に関する情報を見つけることができますが、確実ではありません。

「ハード」な方法を使用したい場合は、Firefoxおよび/またはそのプラグイン内でCPUを消費しているものが表示されます。環境内でFirefoxのデバッグを開始する必要があります(Firefoxやプラグイン自体ではなく、しかし、破損したライブラリは依存しています)。プログラミングについてのアイデアをお持ちの方は、hotを実行する方法について詳しく説明します。XCodeは、アップルから無料でダウンロードできます。

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

しかし、完全なmozillaコードをデバッグする必要はありませんが、CPU使用率の上昇と相関関係にあるポイントを見つけるでしょう。これにより、問題の原因を正確に知ることができます(このような悪いループなど)。


1

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

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

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


1
間違いで申し訳ありませんが、MACでfirefoxを使用していることを読むのを忘れました。MACの経験はあまりありませんが、Windowsのようなタスクマネージャーが含まれている場合、この方法はWindowsシステムでのみ機能します。
ハンター

3
これは良いアドバイスですが、実際の質問に答えることには決して近づきません。
laggingreflex
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.