問題タブ [yourkit]

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.

0 投票する
1 に答える
266 参照

java - Java Eclipse プラグインのようなプロファイラーを使用する以外に、クラスによって作成されたオブジェクトの数

作成されたオブジェクトの数または各クラスを確認するための優れたEclipseプラグインがあるかどうか疑問に思っていました。Yourkit プロファイラーはこれでうまく機能しますが、Eclipse で適切なものを用意すると便利です。

0 投票する
3 に答える
382 参照

java - Java EE アプリケーションのプロファイリング - 何を調べ、どのような変更を加えるか?

私は、パフォーマンスを向上させるためのアプリケーションのプロファイリングに少し慣れていません。プロファイラーとして YourKit を選択しました。YourKit が非常に興味深い統計を提供していることは間違いありません。私が立ち往生しているのは、これらの統計をどうするかということです。

たとえば、JAXB POJO で動作するメソッドを考えてみましょう。このメソッドは POJO を反復処理して、XML 内に深くネストされたタグ/要素にアクセスします。これには、以下に示すように、要素/タグに到達するために 4 層の for ループが必要です。

YourKit は、上記のコードが「ホットスポット」であり、このコードを含むメソッドへの呼び出しごとに 80 個のオブジェクトがガベージ コレクションを取得していることを教えてくれます。上記のコードは単なる例であり、私が行き詰まっている唯一の部分ではありません。ほとんどの場合、プロファイラーから提供された情報をどう処理すればよいかわかりません。上記のコードで一時オブジェクトの数を減らすにはどうすればよいですか? アプリケーションのパフォーマンスを改善するための明確に定義された原則はありますか? アプリケーションのプロファイルを作成する際に探すべき統計と、それぞれの種類の統計にはどのような意味がありますか?

編集: アプリケーションのプロファイリングの主な目的は、スループットと応答時間を向上させることです。現在のスループットは、必要なスループットのわずか 10% です。

0 投票する
3 に答える
841 参照

java - アレイ構築のブレークポイント

配列の構築時に実行が停止するように、Eclipseまたは別のデバッガーにブレークポイントを設定する方法はありますか?私は特にプリミティブ配列(int [])の構築に興味がありますが、この質問はどの配列にも等しく当てはまるはずです。

int []、char []、byte []などで大量のガベージを作成している原因を見つける必要があるため、条件付きでブレークポイントを設定できれば、コードを絞り込むことができます。 。

yourkitのメモリプロファイリングを使用してみましたが、これらのオブジェクトのごく一部の割り当てのみが表示され<objects without allocation information>、残りはとして表示されます。理由はわかりません。Objects unreachable from GC rootsビューに入ると、ごみの約7%の割り当て情報しか表示されません。このように少数のオブジェクトに割り当てられているため、いくつかの場所が欠落しているかどうかさえわかりません。YKにすべての割り当てを保持させる方法はありますか?

0 投票する
3 に答える
6387 参照

java - パーク/パーク解除の CPU 使用率が 60% になるのはなぜですか?

最近、YJP 11.0.9 を使用してアプリケーション (XMPP ベースのチャット サーバー) のストレス テストを開始しました。テスト中に、次の奇妙な動作に気付きました。

  1. サンプリングは、sun.misc.Unsafe.unpark(Object) が CPU の 60% を使用していることを示しています。
  2. 同じアプリのトレースでは、LockSupport.park(Object) が CPU の 52% を使用したことが示されています。

結果を確認するために複数のテストを行い、毎回同様の結果が得られました.

パーク解除に 60% の時間がかかる理由と、トレースが正反対の結果を示す理由を理解できません。

誰かがこれらの結果を理解するのを手伝ってくれますか? ここで何か不足していますか?

環境:

0 投票する
3 に答える
2735 参照

java - ライブ JVM から現在のスレッド スタック変数をダンプできますか?

状況を分析するには、デッドロック状態の 2 つのスレッドのスタックを調べる必要があります。はJVM現在稼働しており、データはそこにありますが、プロセスからデータを抽出するには何らかのツールが必要です。type のスタックにある 6 つの変数だけを気にしますString。どんなアイデアでも大歓迎です。JVMバージョンは有効になっていますが、接続6_35が構成されていません。再現するのは非常に困難です。linuxJMXprofiler/debugger

0 投票する
1 に答える
1799 参照

eclipse - YourkitプロファイラーEclipseデバッグモードの起動

yourkitはEclipseに簡単に統合でき、プログラム「Profile As」を開始すると、YourkitAPIと統計分析に自動的に接続できることを知っています。これは常にプログラムを実行し、それをプロファイリングします。

さて、もし私がデバッグモードでそれをしなければならないなら。それを行う方法はありますか?

0 投票する
0 に答える
1131 参照

java - YourKit で Hadoop HPROF .profile ファイルを開く

YourKit はバイナリ HPROF ダンプを開くことができると主張していますが、Hadoop ジョブから作成されたバイナリ ダンプは有効なスナップショットではないと主張しています。

ダンプは、 (Hadoop: The Definitive Guide で指定されているように)mapred.task.profile.paramsの値でオプションを指定することによって作成されます。-agentlib:hprof=cpu=samples,heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s,format=b

このファイルを YourKit で開く方法はありますか? 作成されたファイルを開くグラフィカルなプロファイリング ツールは他にありますか?

0 投票する
2 に答える
3126 参照

intellij-idea - IDEA Intellij を使用して Ubuntu 12.04 で YourKit Java プロファイラーをセットアップするときに何が欠けていますか?

YourKit Java Profiler をセットアップするときに発生するこのエラー

私の JVM は 64 ビットです。ここに何か欠けていますか?

スレッド、ソケット、および SiteBricks Http Web クライアントに関連する E2E テストがいくつかあります。私のテストは非常に遅く、テストごとに約 6 秒実行されます。プロファイラーを使用して、テストが正確に遅くなる場所を監視したかったのです。私のテスト フレームワークは TestNG です。右クリックして「プロファイル」を押すと、上記のメッセージが表示されます。

手伝ってくれてありがとう。

0 投票する
1 に答える
824 参照

java - Java プロファイリング - Tomcat サーバーが終了する

yourkit jprofiler を使用して、Spring/Hibernate ベースのアプリケーションをプロファイリングしようとしています。プロファイリング用のアプリケーションを (yourkit と共に) 実行すると、フォームを送信した後に tomcat サーバーが終了します。データは正常に挿入されています。以下のエラーが発生します。

0 投票する
0 に答える
273 参照

java - 広範なプロファイリングにもかかわらず、API 応答時間が徐々に遅くなる理由を見つけることができません。何かアイデアはありますか?

このアプリケーションは JSON-RPC API を公開し、Jetty と Google Gson を使用して JSON コードを解析/生成します。

リモート システムは、アプリケーションに対して数千の永続的な HTTP 接続を開き、毎秒約 50 の速度で API 要求の送信を開始します。私たちのアプリケーションは、CPU のみを使用して応答を生成します (つまり、ディスクやデータベースへのアクセスはありません)。私たちのアプリは EC2 仮想マシンで実行されています。

アプリが最初に起動したときの典型的な応答時間は 1 ~ 2 ミリ秒ですが、数時間かけて徐々に増加し、最終的にはアプリケーションには遅すぎる 80 ミリ秒に達します。これはナノ秒単位の応答時間を示すグラフです。着実に増加していることに注意してください。

ナノ秒単位の API 応答時間のグラフ

私は YourKit プロファイラーを使用して、起動直後に CPU スナップショットをキャプチャし、後で大幅に遅くなったときに再度キャプチャしました。問題は、スローダウンを説明する方法が 1 つもないように思われることです。時間の経過とともにすべてが遅くなるだけです。

スレッド数もメモリ使用量も増えていないようで、スローダウンの原因がどこにあるのか途方に暮れています。

原因が何であるかについてのアイデア、または問題を特定するためのより効果的な方法についての提案はありますか?