問題タブ [cpu-usage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firefox - Firefox プラグインの CPU 使用率
Web 開発コーディング セッション中に Firefox の CPU 使用率に関するデータを収集する必要があります。特定の Firefox プラグインの CPU 使用率を監視できるかどうか疑問に思っています。
現在、Windows の perfmon.msc を使用していますが、Firefox のプロセス全体を監視することしかできません。
プラグインから CPU データを取得できるツールを知っていますか? まったく可能ですか?
delphi - Delphi 7 の OnMouseMove イベントでコンポーネントを移動するときに CPU 使用率を減らす方法は?
Delphi 7 アプリケーションで、マウスに従ってコンポーネントを移動したいと考えています。私はこのようなことをしています:
マウスを動かすと、最近の PC でメイン コアの CPU 使用率が 100% まで上がります。
この場合、CPU 使用率を減らすためのアイデアや目盛りはありますか?
c# - WMI と C# を使用した CPU 使用率
WMI を使用して c# で現在の CPU 使用率を取得するにはどうすればよいですか? パフォーマンス カウンターを使用した投稿をたくさん見てきましたが、リモート コンピューターで動作するソリューションが必要です。ここでVB ソリューションも見つけましたが、可能であれば C# でこれを実現したいと思います。
java - `JavaでスレッドごとのCPU使用率を監視しますか?
cpu usage
のスレッドごとに決定する簡単な方法があるかどうかを尋ねたいと思いますjava
。ありがとう
tomcat - Tomcat の CPU 消費量が多い
Tomcat.exe は CPU の 75% を消費しています。なぜそれが起こるのか、どうすればそれを減らすことができるのか、誰にも分かりますか?
Tomcat5.5 & J2SDK v 1.4.2_12 を使用しています
java - WebSphere 6.1 での CPU 使用率のスパイク
まず、背景を少し説明します。
お客様の 1 人が、当社の Web アプリの 1 つを実行している WebSphere インスタンスで CPU 使用率のスパイクを経験しています (他のアプリを使用する他のインスタンスは問題ありません)。彼らには、テスト環境とライブ環境 (両方とも iSeries) があり、どちらも問題が発生します - インスタンスごとに 1 つのアプリをセットアップします。私たちはこのアプリケーションを私たち自身のテスト環境でローカルに展開しました。また、iSeries 上の他の多くの顧客にも同じような問題は発生しませんでした。
実際に起こっていること:
その時点で処理されている要求がない場合でも、約 17%
秒ごとに、WebSphere プロセスの CPU 使用率の CPU 使用率がどこかにジャンプします。20%
顧客は、最大のスパイクが見られると報告してい30%
ます。これらのスパイクの平均は、アイドル時1.5%
の CPU 全体 (他の WebSphere インスタンスが通常使用するもの0%
)に相当します。0.1%
これまでの私の調査
ということで、スレッドを拝見しました。テスト環境の 1 つのスレッドが、~350
1 秒あたりの CPU サイクルを使用していました。ライブ環境の同様のスレッドは、~1500
1 秒あたりの CPU サイクルを使用していました (より大きな CPU を使用していることを示しています)。これらのスレッドのコール スタックは次のようになります。
一番下の行からのクラス名全体はcom/ibm/ws/util/BoundedBuffer
. 私は顧客に JVM ダンプを依頼しました。ここから得た唯一の追加情報は、スレッド名でした。
今私の質問のために:
- これらの症状を考えると、誰でも問題を特定できますか? (多分それはロングショットです!)
- とは
Deferrable Alarm
? JVM ダンプから、この名前の 4 つのスレッドを確認できます。他の3人は元気そうです。ローカルの WebSphere (Windows 上) をデバッグし、BoundedBuffer
クラスにブレークポイントを追加すると、BoudedBuffer
s がポーリングし、定期的にリスナーを呼び出していることがわかります。 - 私は顧客のマシンの WebSphere コンソールにアクセスすることができません。また、顧客は構成を変更したことを認めていません。コンソールを確認するように依頼することはできますが、何を確認するように依頼すればよいでしょうか?
- カスタマー ボックスに telnet でアクセスできます。他に調査できることはありますか? WebSphere プロファイル ファイルなどを見ていますか? どのファイルを確認する必要がありますか?
- Call Stack と JVM Dump はコードを明示的に参照していないため、これは構成上の問題であると想定しても問題ないでしょうか?
長い質問だったので、ここまで読んでくれてありがとう。
4月30日更新 (1)
今朝、この動作は、その日の最初のリクエストが処理された後にのみ発生することに気付きました (どの Web サービスが呼び出されたかに関係なく)。これは、アプリケーションまたは Apache Axis を指し示しています。これは単なる正常な動作なのでしょうか?!
4月30日更新 (2)
したがって、この CPU アクティビティは、Web コンテナまたは Apache Axis 内の何らかのハウスキーピング アクティビティのようです。私は今、これがいくつかの異なるサーバー上のいくつかの異なる Web アプリケーションで発生していることを確認しました。Web コンポーネントを持たないアプリケーションは、同じように追加の CPU オーバーヘッドに悩まされることはありません。
それがハウスキーピング作業である場合、それを「調整」すると逆効果になる可能性があると思います-つまり、App Serverのアイドル状態を改善すると、実行できる「実際の」作業の量におそらく悪影響を与えることになります.
c++ - CPU とメモリの使用状況を動的にキャプチャする
API のパフォーマンスを測定する C++ アプリケーションを実行するシェル スクリプトを実行しています。API のレイテンシー (特定のパラメーター セットの値を返すのにかかる時間) をキャプチャできますが、CPU とメモリの使用量も 5 ~ 10 秒間隔でキャプチャしたいと考えています。
システムのパフォーマンスにあまり影響を与えずに、同じスクリプト内でこれを行う方法はありますか? 実行中のスクリプトの外部で (独立して) 実行できる多くの例を見つけました。しかし、同じスクリプト内でできることではありません。
windows - CPU 使用率はどのように計算されますか?
Windows タスク マネージャーには、CPU 使用率がパーセンテージで表示されます。この背後にある式は何ですか?これですか:
プロセス A の % CPU 使用率 = (現在までに A に与えられたすべてのタイム スライスの合計)/マシンが起動してからの合計時間
それとも別のものですか?
java - Java での CPU 使用率の削減に関する提案はありますか?
HTML ページをダウンロードする Java プログラムを作成しました。ただし、CPU 使用率はほぼ 100% ですが、ネットワーク使用率は 3% 未満です。そのCPUがボトルネックになったようです。CPU 使用率を削減するにはどうすればよいですか?
performance - CPU 使用率
Q1. CPU を消費せずに優れたパフォーマンスを達成するコードを作成するためのベスト プラクティスは何ですか? 質問は非常に一般的です。ここで私が求めているのは、さまざまな環境で使用されるさまざまなプラクティスをリストアップすることですか? プロセスモニター/タスクマネージャー以外のデバッグのヒント
編集:私はIOバウンドプロセスについて話しているのではありません。私はCPUバウンドプロセスについて話しています。しかし、ここでは、プロセスが CPU を占有し続けることは望ましくありません。4 コアのマシンがあり、プロセス内で 4 つの単純なループを実行すると、アプリケーション/プロセスが実行されるまで CPU 消費が最大 400% まで上昇します。
私はここで、誰もが何度か直面したであろうトピックについての経験を求めています. たとえば、アプリケーションが存在しないファイルを検索するために継続的にループしていたため、Windows で CPU を占有していたアプリケーションをデバッグしました。
2 つの異なる CPU バウンド アプリケーションがスムーズに実行される (良い応答が得られる) ようにプログラムを作成するにはどうすればよいですか?
更新: 提案:
適切でクリーンなコードを記述し、アプリケーションをプロファイリングしてから最適化します。(ヒントをありがとうテッド)
コードをプロファイリングして修正するよりも、コードを書き直し/再設計/リファクタリングする方が簡単です。
プロファイラーを使用してアプリケーションをデバッグする
待機時間が長いスレッドにはスピンロックを使用しないでください
アルゴリズムの選択
これらの提案は、初心者が概念を理解するのに大いに役立ちます。