問題タブ [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 で Domino エージェント (AMgr) をプロファイリングする方法は?
大規模な Domino エージェントで問題が発生しているため、それをプロファイリングできるようにしたいと考えていました。Yourkit について多くの素晴らしいことを聞いたので、David Leedy のビデオの指示に従いました。
http://notesin9.com/index.php/2012/11/29/notesin9-091-xpages-memory-profiling-part-1/
次の行を含むテキスト ファイル YourKitOptionsFile.txt を作成しました。
この行を notes.ini に追加しました。
サーバーは Domino 9.0.1 で、YourKit のバージョンは 2013 build 13082 です。OS は Windows 8.1 です (サーバー ライセンスを購入する余裕はありません)。
私が見つけたすべてのドキュメントでは、nhttp.exe によって実行される JVM に接続できますが、Amgr.exe を使用した JVM に興味があります。
これはまったく可能ですか?
java - YourKit - オブジェクトの保持サイズが、それによって参照されるすべてのオブジェクトの保持サイズと等しくない
オブジェクトの保持サイズは、それによって参照されるすべてのオブジェクトの保持サイズと等しくありません。
何が起こっているかは次のとおりです。
- YourKit を使用してメモリ スナップショットをキャプチャします。
- オブジェクトをクリックしてクラス タイプごとにインスタンスを表示
- インスタンスの保持メモリが A バイト (600mb) であるとしましょう
- 基になるインスタンスの保持サイズを展開して合計します合計が B (300mb) であるとしましょう
A >> B
playframework - playframework 2.2.3 を使用した Yourkit プロファイラー
Playframework 2.2.3 アプリケーションのパフォーマンスの問題を調査するよう依頼されました。私は以前に playframework 1 を使用した経験がありますが、2.x は非常に異なっていることに気付きました。
Play 2 で Yourkit プロファイラーを使用できた人はいますか? フレームワーク/ビルド スクリプトの java コマンドにオプションを追加することで、エージェントをアタッチすることができました。これはエージェントを sbt ランチャーに接続するだけなので、実際のアプリケーションが起動されるとエージェントは終了します。
誰かがこれに対する解決策を持っていますか? おそらく、「play dist」を使用する必要があります
ジョン
java - Playframework スレッド プール
私は Playframework 2.2.3 アプリケーションを YourKit でプロファイリングして、いくつかのパフォーマンスの問題を解決しようとしています。これは私のアプリケーションではなく、私は play 2 に慣れていません。このアプリケーションは、Web ソケットを利用するマルチプレイヤー ソーシャル ゲームです。Amazon EC2 m3.large で実行されます
プロファイラーで確認できるのは、ゲーム プレイ ロジック (Web ソケット呼び出しによって開始) が play-internal-execution-context の 2 つのスレッドのうちの 1 つで実行されていることです。一部のルーチンには I/O が含まれており、部分的にメソッドの同期が行われているためにブロックが発生しています。play-internal-execution-context という名前のスレッドのプールがありますが、常に使用されるのは 2 つだけです。アクティビティは時々新しいスレッドに移動され、現在使用されているスレッド名は play-internal-execution-context-600 と 601 であることがわかります。
私はプレイドキュメントで見ることができます
Play Internal Thread Pool - これは Play によって内部的に使用されます。このスレッド プール内のスレッドによってアプリケーション コードが実行されることはなく、このスレッド プール内でブロックされることもありません。そのサイズは、application.conf で internal-threadpool-size を設定することで構成でき、デフォルトで使用可能なプロセッサーの数になります。
アプリケーション コードを含むスレッドのスタック トレースを見ると、開発者が間違った設計をしている可能性があります。または、フレームワークの非同期の性質のため、コードは実際にはこれらの内部スレッドで実行されるだけです。 ?
ではごきげんよう
ジョン
ubuntu-12.04 - ubuntu 12.04でyourkitプロファイラーを開くことができません
ubuntu デスクトップで YourKit を Java プロファイラーとして実行しようとしていますが、プロセスは開始されますが、UI が表示されません。私はこの問題をグーグルで検索し、この問題を回避するための手順を提案するこの記事を見つけました。そこにあるすべての提案を試しましたが、私のシステムでは機能しないようです. 誰かが洞察/専門知識を持っている場合は、それを共有してください。
ruby-on-rails - YourKit を使用して Jruby/Rails/Tomcat アプリケーションのメモリ リークを検索する
未確認のメモリ リークを検索するタスクを取得するという不幸がありました。YourKit を使用するのはこれが初めてなので、何を探すべきかはわかっていますが、どこをどのように探せばよいかわかりません。
私の理解では、特定のオブジェクトが解放されていないため、時間が経つにつれてメモリ消費が増加します。Railsでそれを行うのはかなり難しいですが、誰かが方法を考え出したと思います.
メモリ テレメトリは次のようになります。
時間の経過とともにGCが増加するという事実を無視すると、Old Genメモリが増加しているように見えます...多分。
ここで、おそらく、そこに積み上げられているオブジェクトと、それらを生成するオブジェクトを知る必要があります。
これまでに行った手順:
- トリガーCG
- 「オブジェクト割り当ての記録」を開始しました(100日ごと...何かに役立つかもしれない気がします)
- しばらく待った
- 別の CG をトリガーした
- メモリダンプを実行しました
YourKit でメモリ スナップショットを開いた後、何を探すべきかわかりません。
Allocations に Call Tree があります。ツリーを展開すると、実行されている Rails コードのヒントが得られますが、見ているものが実際に必要なものであるかどうかはわかりません。
Javaプロファイリング、Yourkitの使用、私を正しい方向に向けることができる人はいますか?
編集:マージされたパスビューで表示できるものの例:
java - Java のインポート、アセンブリ (Krakatau)、およびソース コード
だからここに私の状況があります:
CPU 使用率の高い Java クライアント/サーバー アーキテクチャを実行しており、メインの「サーバー」スレッドの遅延時間を短縮しようとしています。CPU を占有するコードを特定するために、YourKit を使用してサーバーのプロファイリングを行っています。
問題は:
私は他人のコードを使用していますが、その書き方のせいで、私がアクセスできない特別な難読化ツールを使用せずに逆コンパイルしてから再コンパイルすることは不可能です (いいえ、私は著作権などに違反していません)。
私が現在していること:
難読化を心配せずにクラス ファイルを変更するために、Storyyeller のすばらしい Krakatau 逆コンパイラ ( https://github.com/Storyyeller/Krakatau ) を使用して、クラス ファイルをアセンブリ ファイルに逆アセンブルしました。
Jasmin のリファレンス ページを見ながら手動で .j アセンブリ ファイルを編集し (これには永遠に時間がかかり、よく失敗します)、それらをクラス ファイルに再アセンブルし、再度実行します。
私がしたいこと:
アセンブリを入念に編集するのではなく、.java ソース コードを .j アセンブリ コードに変換する方法を知っている人はいますか?
また、.class ファイルを単純に逆コンパイルした場合、インポート用のパッケージが存在しない場合でも単純に再コンパイルすることはできますか?
誰かが私がこれを行うことができる方法を知っていれば、本当に感謝しています!
java - YourKit プロファイリングと行番号
YourKit Java プロファイラーを使用して、一部の Java コードで CPU を占有しているスポットを見つけています。私は Java クラスの元のソース コードを持っていないので、何を修正する必要があるかを確認するために逆コンパイルしています。
逆コンパイルされたコードの行番号 (JD-GUI を使用、他にはまだテストしていません)は、YourKit プロファイラーの CPU サンプリング ウィンドウに表示される行番号と一致しません。
元のソース ファイルの行番号と逆コンパイルされたコードを照合できる逆コンパイラはありますか?
以下に示すように、EnergyNetwork.getAcceptors() の出力行番号は 86 行目です。しかし、JD-GUI では、86 行目がリストとして表示されます。
gatling - yourkit と gatling の req/s の違いを説明する方法
ガトリングを使用して、いくつかのパフォーマンス テストを行います。
ガトリング レポートでは、req/s の平均が 80 であることがわかりますが、キットのパフォーマンス チャートでは、JSP/サーブレット リクエスト数が 300 req/s であることがわかります
なぜ両方の数字の間にこのようなギャップがあるのでしょうか?