時折、Java コードのプロファイリング作業を行う必要があります。Netbeans や JConsole でプロファイラーを使用するのではなく、商用プロファイラーを上司に調査してもらう必要がある理由を知りたいですか?
投資を正当化するキラー機能は何ですか?
私のJProfilerの経験では、NetBeansプロファイラーよりも全体的に滑らかな経験です。開始しやすく、情報を解釈しやすく、私はそれを測定していませんが、JProfilerはプロファイリングされているアプリケーションのパフォーマンスにそれほど悪影響を与えていないようです。
また、JProfilerはIntelliJIDEAとうまく統合されています。NetBeansプロファイラーを使用するにはNetBeansを使用する必要があります。これは、プロジェクトのレイアウトに一致するように自由形式のプロジェクトを手動で構成する必要があるため、不便です。
NetBeansプロファイラが使用可能です。IntelliJとは異なり、個人的なプロジェクト用にJProfilerライセンスを購入することはありません。これは、IDEとは異なり、毎日1日中使用するツールではないためです。ただし、有料の作業の場合、より優れたツールを購入しない理由はありません。開発者の時間のコストと比較して、それは高価ではありません。
NetBeans プロファイラーと JProbe の両方を使用した経験があります。パフォーマンス プロファイリングに関しては、Netbeans が非常に有用であることがわかりましたが、JProbe が優れているのはメモリ プロファイリングです。
JProbe には、ヒープ スナップショットを比較し、メモリ リークの根本原因を見つけるための優れたツールがあります。たとえば、JProbe では、ヒープ ショットをグラフとして視覚的に表示し、ノードを選択して調査し、参照を削除してインスタンスをガベージ コレクションできるかどうかを確認できます。
すでに Netbeans を使用している場合、プロファイラーの起動は簡単です (Maven ベースのプロジェクトを使用している場合を除きます... ため息)。
私は有料のプロファイラーと Netbeans プロファイラーを使用しました。Netbeans は十分に機能します (最初に登場したときは少しラフでしたが、今でははるかに良くなっています)。
私がプロファイリングするコードは巨大ではないので、プロファイリングに費やされた時間が主な要因であるかどうかはわかりません。
答えは非常に主観的であり、ニーズに完全に依存します。注目すべきこと:
1) 環境での使いやすさ (NetBeans の場合、組み込みのプロファイラーが最も簡単である可能性があります。
2)実際に使用可能な結果を得るためにprfilerを起動するのに費やした時間
3) サンプリング プロファイラーですか、それともトレース プロファイラーですか? (概要はこちら: http://docs.hp.com/en/5992-0757/ch05s01.html
4) 結果をライブで表示できますか、それともプロファイリングが完了するまで待つ必要がありますか?
Javaプロファイラーに関するスラッシュドット ディスカッションへのリンクは次のとおりです。
Netbeans プロファイラーは使用していませんが、JProfiler、Yourkit、および JProbe を試しました。Yourkit の方がわずかに優れていることがわかりました (主に使いやすさの面で購入しました)。その中の便利な機能のいくつかは次のとおりです: (Netbeans で利用できるかどうかを確認できます)
詳細については、彼らのサイトで確認できます。
すぐに使用でき、より多くのパフォーマンス統計が得られます。多国籍企業でインターンをしていた昨年、プロファイリングの仕事を割り当てられました。Java アスペクト指向 API (Aspectwerkz と AspectJ の両方で動作) を使用する InfraRED プロファイラーを使用しました。しかし、マネージャーが望むものを得るには、プロファイラーを拡張する必要がありました。また、プロファイラーによって提供されるパフォーマンス統計は制限されていました。
しかし、プロファイラーを選択する前に、他のいくつかのオープンソース プロファイラーを調査しました。それらのいくつかは些細なもので、私たちが望んでいたものには合いませんでした.
また、それらのいくつかは機能しません。たとえば、Web アプリケーションのパフォーマンス統計を収集したい場合、すべてのプロファイラーが必要な統計をサポートしているわけではありません。
完全に独立したプロファイラーを使用すると、ツールチェーン内の他のアプリケーションと簡単に統合できます。たとえば、ビルド プロセスの一部としてプロファイラーを実行するとします (たとえば、1 晩に 1 回)。JProfiler のようなものは ANT と簡単に統合できますが、IDE に組み込まれたプロファイラーはそうかもしれないし、そうでないかもしれません。別のビルド マシンがある場合、プロファイラーのローカル コピーをインストールするのは理にかなっていますが、1 つのコンポーネントにアクセスするためだけに IDE 全体をインストールするのは理にかなっていません。
私の経験からすると、YourKit プロファイラーが最も使いやすいものです。小さなユーザビリティが本当に違いを生むだけでなく、以下を含む最も包括的なものでもあります。
とりわけ、それは常に改善されているので、将来の保有物が何であるかは誰にもわかりません:)
機能を比較して、無料のソフトウェアよりも商用ソフトウェアが提供する機能が本当に必要かどうかを確認してください。はいの場合、投資する価値があります。