問題タブ [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.
java - Yourkit 8.X が Java 5 アプリケーションのみをプロファイリングするように推奨されるのはなぜですか?
yourkit プロファイラーをアップグレードすると、Web サイトに次のメッセージが表示されることに気付きました。
YourKit Java プロファイラー 8.0.30
バージョン 8.0 を使用して、Java 5 アプリケーションのみをプロファイリングします。Java 6 および Java 7 アプリケーションをプロファイリングするには、バージョン 9.5 を使用します。
私が理解できないのは、8.0 で Java 5 アプリケーションのみをプロファイリングすることを推奨する理由です。これには何らかの理由があるのでしょうか、それとも単なるマーケティングなのでしょうか?
java - YourKit でプロファイリングされたアプリでも、CPU ホグを特定できません
ほとんどの場合、CPU を 100% 消費している Java アプリケーションがあります (cacti と top の監視で示されています)。YourKit を起動すると (CPU リソースの問題が確認されます)、15% の時間で java.net.SocketInputStream.read(byte[], int, int) が最大のホット スポットとして識別されます。SocketInputStream.read のようにブロッキング IO を実行するメソッドの CPU 時間を正確に測定していないと思います。
他に 6 つの特定されたホット スポットがありますが、それらを合わせた CPU 時間の 20% 未満しか占めていません。すべて 5%-1% の範囲です。
だから私は問題があることを知っています、私は問題を見ることができます、あなたのキットもそうですが、私は実際の問題を特定することに近づいていません.
私はプロファイラーを使用するのにかなり慣れていないため、何かが欠けている可能性があります。何か案は?
編集: Sean は、システムに組み込まれたツールの使用について良い点を指摘しています。top と shift+h を使用してスレッドを表示すると、7 ~ 15 のスレッドが表示され、CPU 使用率が跳ね上がります。問題を引き起こしているのは 1 つのスレッドではなく、各スレッドがある時点で実行されるコードの一部であるとは考えていません。
grails - リモート Grails アプリの YourKit プロファイル
Grails アプリケーションで発生し、Yourkit Profiler を使用しているメモリ リークを追跡しようとしていますが、問題が発生しています。
プロダクション サーバーの Tomcat6 で Grails アプリケーションを実行しており、YourKit プロファイラーを解凍し、ドキュメントに従って を使用して実行しましsudo bin/yjp.sh -attach
たが、次のエラーが発生します。
YourKit v10 を使用しており、Ubuntu 11.04 サーバーを使用しています。何か案は?
java - yourkitに似たツール?
私はあなたのキットを使ってきました、それは素晴らしいツールです。私は通常、CPU消費レベル曲線を使用し、時間に対するスレッドのドリルダウンを行います。
しかし最近、過剰なIOまたはGCが発生していないため、キットによってアプリケーションでランダムな20秒のフリーズが発生していると思われます。このようなフリーズ期間では、マシンのCPU使用率が約5%に低下するため、ビジー状態ではありません。 GC。
だから私はあなたのキットに似たツールが欲しいのですが、それを試してみて、問題が本当にあなたのキットに起因するかどうかを確認してください
以下は1つのフリーズを示しています。これは、CPU使用率が中央の期間で直線であることがわかります。これは、キットがその期間中にサンプルを取得できなかったためです。実際、その期間はJVMがフリーズしていました。
http://farm7.static.flickr.com/6157/6193700183_80297855d5_b.jpg
その期間にストップザワールドGCがないことを確認しました
ヤン、どうもありがとう
java - VisualVMとYourKitは、同じオブジェクトに対して異なる保持サイズを報告します
JVisualVMとYourKitを使用してヒープメモリダンプ(jmapを使用して作成)を分析していますが、同じオブジェクトに対して、2つの非常に異なる保持サイズが報告されていることに気付きました。原因が何であるかを誰かが知っていますか?
java - YourKit is showing me that although my code makes use of 8 fixed threads, the JVM seems to be switching which 8 threads are actually being used. Why?
I'm running YourKit over a simple program I've wrote that tries to solve the Traveling Salesman Problem by brute force, running several threads at once (in the current case, 8).
As the below picture shows, it seems that instead of having 8 fixed threads during the program's life-time, it seems to be using 8 threads for some time, then other 8 threads for some other time, and it seems to keep on switching each couple of minutes.
I was curious about this behavior. Has anyone any kind of extra info on why this happens?
java - 完全にメモリから(IOなしで)アルゴリズムを実行していますが、CPU使用率は25%未満です。考えられるボトルネックは何でしょうか?
私は有名な巡回セールスマン問題のシングルスレッドブルートフォースバージョンを実行してきましたが、YourKitは、CPUが最大で25%使用されているという事実を正確に示しています。
その事実の背後にある理由は何ですか?この種のアルゴリズムはCPUを非常に集中的に使用すると言われていますが、この場合、CPUの無駄が多いようです。
私の理論では、ボトルネックはRAMアクセスでなければなりません。私が実行しているアルゴリズムはシングルスレッドであるため、ロックの問題は問題外のようです。
私は正しいですか?
java - ファイナライズされたオブジェクトを出力する JVM オプション
-XX
ファイナライズするためにキューに入れられたオブジェクトをログに記録するための JVM オプション (またはその他) はありますか? 大量のjava.lang.ref.Finalizer
インスタンスが発生する過剰なファイナライザーを持つアプリケーションをデバッグしています (YourKit Java Profiler で見られるように)。どのルート オブジェクトのメソッドがすべてのインスタンスfinalize
を引き起こしているかを YourKit プロファイラーで調べるのは困難です。Finalizer
java - heapdump サイズと hprof サイズ
最近、jboss サーバーが xms 4096m、xmx 4096m、permsize 512m で実行されていたときに、hprof 形式でヒープダンプを作成しました。
生成された hprof ファイルは 5 GB を超えています。visualvm、mat アナライザー、または yourkit でヒープダンプをロードすると、合計バイト数が約 1 GB しか表示されません。キットの到達可能範囲を変更しようとしましたが、1 GB を超えて表示されません。
ファイルサイズと表示されたヒープダンプサイズのこの大きな違いが何を引き起こす可能性があるか考えていますか?
ps: jdk1.6.0_23 を使用しています
残念ながら、ここでスクリーンショットを送信することは許可されていません。
ファイルシステムでは、hprof のサイズは 5.227.659 kb であり、キットには次のように記載されています。
オブジェクト: 9.738.282 / 浅いサイズ 740 mb / 保持サイズ: 740 mb それらの間で到達可能な文字列: 6.652.515 (68%) / 浅いサイズ: 381 mb (51%) / 保持サイズ: 381 MB (51%)
保持される最大サイズは、206.810.176 の byte[] です。
java - Java メモリ リーク: WDialogPeer は唯一の強力なリファレンスです。なぜ GC を使用しないのですか?
レガシー Java 製品のプロファイリングを行っており、YourKit を使用してメモリ リークを探しています。私はかなりのプラグインをしていますが、解決できない問題に遭遇し続けています。
私はかなりの数のウィンドウ/ダイアログを持っていますが、それらを閉じると (JDialog から派生した場合は dispose を呼び出します)、それらは GC されません。YourKit は、GC への唯一のルートが「sun.awt.windows.WDialogPeer [JNI Global] のターゲット」であると報告しています。ほとんどが MetalToolBarUI から来ているように見える弱参照もいくつかあります。おそらくこれらは、WDialogPeer からのこの 1 つの強力な参照のためにのみ存在します。
誰かがこれを以前に見たことがありますか? または、WDialogPeer が私の JDialogs/JFrames を保持している方法および/または理由を教えてもらえますか? どうすればきれいにできますか?