商用 Java プロファイラーには、無料のものと比べてどのような利点がありますか?Netbeansのものは?

StackOverflow https://stackoverflow.com/questions/490858

  •  20-08-2019
  •  | 
  •  

質問

時々、Java コードでプロファイリング作業を行う必要があるのですが、なぜ Netbeans や JConsole のプロファイラを使用するのではなく、市販のプロファイラで上司に調査を依頼する必要があるのか​​知りたいです。

投資に値するキラー機能は何でしょうか?

役に立ちましたか?

解決

私は、NetBeansプロファイラとJProbeの両方を使用した経験を持っています。パフォーマンスプロファイリングのために私はNetbeansのは非常に有用であることが判明しましたが、JProbeには、メモリプロファイリングのために優れているされています。

JProbeには、ヒープのスナップショットを比較すると、メモリリークの根本原因を見つけるための優れたツールがあります。例えば、JProbeににあなたが調査し、インスタンスはその後、ゴミを収集することができるかどうかを確認するための参照を削除するノードを選択し、視覚的にグラフとしてヒープshapshotsを表示することができます。

他のヒント

JProfilerを持つ私の経験では、それは、NetBeansプロファイラよりも、単にオールラウンドスリッカーの経験です。それを情報を解釈しやすく、使い始めるために簡単だと、私はそれを測定していないものの、JProfilerをがプロファイルされたアプリケーションのパフォーマンスにマイナスの影響の少ないを持っていると思われます。

また、JProfilerをはのIntelliJ IDEAとうまく統合されています。私は手動で私のプロジェクトのレイアウトに合わせて、自由形式のプロジェクトを設定する必要があるため不便であるNetBeansのプロファイラを使用するようにNetBeansのを使用する必要があります。

のNetBeansプロファイラを用いることができます。 IDEとは異なり、それはあなたが毎日一日中使用するツールではありません、ので、IntelliJのとは違って、私は私の個人的なプロジェクトのためにJProfilerをライセンスを購入しないでしょう。しかし、有給の仕事のための優れたツールを購入しない理由はありません。これは、開発者の時間のコストに比べて高価ではありません。

すでに Netbeans を使用している場合は、プロファイラーの起動は簡単です (Maven ベースのプロジェクトを使用している場合を除く)。はぁ)。

私は Netbeans と同様に有料プロファイラーを使用しました。Netbeans は十分に機能します (最初にリリースされたときは少し大変でした...)しかし今はずっと良くなりました)。

プロファイリングするコードはそれほど大きくないため、プロファイリングに費やした時間が主な要因であるかどうかはわかりません。

答えは非常に主観的なものであり、完全にあなたのニーズに依存します。注目すべき点:

1) 環境での使いやすさ (NetBeans の場合は、組み込みのプロファイラーが最も簡単である可能性があります。

2) 実際に使用可能な結果が得られるまでに prfiler を起動するのに費やした時間

3) それはサンプリングプロファイラーですか、それともトレースプロファイラーですか?(概要はここにあります: http://docs.hp.com/en/5992-0757/ch05s01.html

4) 結果をライブで表示できますか? それともプロファイリングが完了するまで待つ必要がありますか?

Java プロファイラーに関するスラッシュドット ディスカッションへのリンクは次のとおりです。 http://ask.slashdot.org/article.pl?sid=06/06/30/0053237

Netbeans プロファイラーは使用したことがありませんが、JProfiler、Yourkit、および JProbe を試しました。私は Yourkit の方が若干優れていると感じました (主に使いやすさの面で購入しました)。便利な機能の一部は次のとおりです。(Netbeans で利用できるかどうかを確認できます)

  • J2EE プロファイリング (例:SQL クエリにかかった時間を示します)。
  • スナップショットの比較と注釈
  • デッドロック検出器
  • 例外テレメトリー

詳細については、次のサイトで確認できます。 サイト.

私は、使用する準備ができて、よりパフォーマンス統計を言うでしょう。私は、多国籍企業でインターンされたとき、私は昨年のプロファイリングの仕事を割り当てられました。私は、Javaのアスペクト指向のAPIを使用しています(AspectwerkzとAspectJの両方で動作します)赤外線プロファイラを使用しました。しかし、私は私のマネージャーが欲しかったものを手に入れるプロファイラを拡張する必要がありました。また、プロファイラによって与えられたパフォーマンス統計は限られていました。

しかし、私はいくつかの他のオープンソースのプロファイラを研究し、プロファイラを選択する前に。それらのいくつかは、私たちが望んで些細とdidntはスーツでした。

私はまた、ことをそれらのいくつかはちょうどdoesntの仕事を追加します。我々は、Webアプリケーションのパフォーマンス統計情報を収集する場合たとえば、すべてのプロファイラは、私たちのために必要な統計情報をサポートしてdoesntの。

完全に独立したプロファイラでは、それはあなたのツールチェーン内の他のアプリケーションと統合するためにはるかに簡単です。たとえば、あなたがあなたのビルドプロセス(例えば、一度夜)の一環として、プロファイラを実行したいと言います。 IDEに組み込まれたプロファイラがよく、またはしない場合があり、一方、JProfilerを何かのようには簡単に、ANTと統合されています。あなたが別のビルドマシンを持っている場合は、プロファイラのローカルコピーをインストールすることは理にかなっていますが、ただ一つのコンポーネントへのアクセスを得るために全体のIDEをインストールすることはしません。

Tomcatを使用している場合は、lambdaprobeを検討するかもしれない。

http://www.lambdaprobe.org/する

(これは無料です)。

私の経験から言えば、YourKit プロファイラーが最も使いやすいものです。小さな使いやすさが大きな違いを生むだけでなく、以下を含む最も包括的なものでもあります。

  • 単一オブジェクトごとに、詳細なオブジェクト ビューとプリミティブ データを備えた、最も包括的で使用可能なメモリ スナップショット (1GB 以上のヒープでも機能)。(たとえば、ハッシュマップでは、オブジェクトが均等に分散されているか、ほとんどが同じバケットに保存されているかを確認できます。) このメモリ スナップショットの詳細とその使いやすさが、私が yourkit を使用する主な理由です。
  • オーバーヘッドが非常に少ない (私が使用した他の多くのプロファイラーよりもはるかに少ない)
  • スナップショットの比較
  • J2EEプロファイリング
  • デッドロック検出器、ロックステータス (まだ java.concurrent.locks が欠落していると思います。同期用の芽は素晴らしいです)

とりわけ、常に改善されているため、将来の保有額は誰にもわかりません:)

の特徴を比較し、あなたが本当に無料1上の商用ソフトウェアが提供する機能を必要とするかどうかを確認します。 yesの場合、その価値は投資ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top