これは、ソフトウェア開発で使用するパフォーマンス分析ツールのリストです。
汎用、言語非依存
以下のツールは、さまざまなシステムから生成される可能性のあるログ ファイルに基づいて動作します。
- 時間(Unix) - プログラムの実行時間を決定するために使用でき、ユーザー時間とシステム時間、CPU時間とクロック時間を個別にカウントします。[ 1 ]
- timem (Unix) - time (Unix)と同様に、ウォールクロック時間、CPU 時間、CPU 使用率を決定するために使用できますが、多数の拡張機能をサポートしています。
- getrusage を介した、ピーク時の常駐セット サイズ、メジャー ページ フォールトとマイナー ページ フォールト、優先度、および自発的なコンテキスト スイッチのレポートをサポートします。
- ページベースの常駐セット サイズ、仮想メモリ サイズ、読み取りバイト、書き込みバイトなどのメトリックを報告するために、サポート システムでprocfsをサンプリングすることをサポートします。
- PAPIサポートを使用してビルドすると、ハードウェア カウンターの収集をサポートします。
複数の言語
次のツールは、複数の言語またはバイナリで動作します。
| 名称/メーカー | OS | コンパイラ/言語 | 何をするのか | ライセンス |
|---|---|---|---|---|
| CiscoのAppDynamics | Linux、Windows、iOS、Android、Azure、AWS、AIX | .NET、Java、PHP、HTML5、ObjectiveC/iOS、Java/Android、C/C++、Apache、Nginx、Cassandra、データベース | アプリケーション パフォーマンス管理を参照してください。 | 独自の |
| ManageEngineのアプリケーションマネージャー | Linux、Windows | Java、PHP、Ruby、.NET、.NET Core、Node.js。 | アプリケーション パフォーマンス管理を参照してください。 | 独自の |
| SmartBear SoftwareのAQtime | ウィンドウズ | .NET 1.0 ~ 4.0 アプリケーション (ASP.NET アプリケーションを含む)、Silverlight 4.0 アプリケーション、C、C++、 Delphi for Win32、VBScript、JScript 関数 を含む Windows 32 ビットおよび 64 ビット アプリケーション | パフォーマンス プロファイラーとメモリ/リソース デバッグ ツールセット。 | 独自の |
| 腕MAP | リナックス | C、C++、Fortran/Fortran90、Python アプリケーション。 | パフォーマンス プロファイラー。I/O、通信、浮動小数点演算の使用率、メモリ アクセス コストを表示します。 MPIまたはOpenMP並列処理などのマルチスレッドおよびマルチプロセス アプリケーションをサポートし、非常に高いノード数に拡張できます。 | 独自の |
| AMDのコードアナリスト | Linux、Windows | C、C++、Objective C .NET、Java(実行可能レベルで動作) | AMD uProf は、AMD プロセッサの CPU および電力プロファイリングにおいて CodeAnalyst および CodeXL に取って代わります。 GUIベースのコードプロファイラー。Intelプロセッサ上で基本的なタイマーベースのプロファイリングのみを実行します。OProfileに基づいています。 | フリー/オープンソース(GPL)またはプロプライエタリ |
| AMD CodeXL(AMD製) | Linux、Windows | GPU プロファイリングおよびデバッグ用: OpenCL。 | GPU プロファイリング、GPU デバッガー、静的カーネル アナライザー用のツール スイート。 | フリー/オープンソース(MIT) |
| AMD uProf(AMD製) | Linux、Windows | C、C++、.NET、Java、Fortran | コード プロファイラーは、AMD プロセッサ上でサンプリング ベースのプロファイリングを実行します。 | 独自の |
| Borland / Micro FocusのDevPartner | .NET、Java | ソフトウェアの欠陥やパフォーマンスの問題を自動的に検出し、診断するテスト スイート。 | 独自の | |
| Sun MicrosystemsのDTrace | Solaris、Linux、BSD、macOS | 実稼働システム上のカーネルおよびアプリケーションの問題をリアルタイムでトラブルシューティングするための包括的な動的トレース フレームワーク。 | フリー/オープンソース(CDDL) | |
| RIOによる dynamoRIO | Linux、Windows | 動的プログラム分析ツールの開発のための動的バイナリインストルメンテーションフレームワーク。 | フリー/オープンソース - BSD | |
| ダイナトレース | Linux、Windows、iOS、Android、Azure、AWS、AIX、Solaris、HP/UX、zOS、zLinux | .NET、Java、PHP、HTML5、Ajax(Webサイト用)、Objective-C/iOS、Java/Android、C/C++、CICS、Apache、Nginx、Cassandra、Hadoop、MongoDB、HBase | アプリケーション パフォーマンス管理を参照してください。 | 独自の |
| エクストラ | Linux、Android | 主に C/C++/Fortran ですが、サポートされている並列ライブラリ (MPI4PY など) にリンクする任意のアプリケーションをプロファイルできます。 | ビューアとサポートユーティリティを備えたHPCパフォーマンス分析ツール。主に並列アプリケーション向けに設計されており、MPI、OpenMP、CUDA、OpenCL、pthreads、OmpSsをサポートしています。追加機能として、ユーザー関数のトレースやPAPI経由のハードウェアイベントキャプチャなどがあります。 | フリー/オープンソース - LGPL-2.1 |
| 核融合炉 | Linux、Windows、macOS、AWS、Azure、Google Cloud | Java、ColdFusion、Apache、MongoDBはJVMでサポートされているあらゆる言語で動作します | アプリケーションパフォーマンス管理とパフォーマンスおよび根本原因分析を実行します。APMと低レベル開発者スタイルツールを組み合わせ、デバッガー、Java、メモリ、スレッド、CPUプロファイラーも含まれています。 | 独自の |
| Electric Software, Inc. の GlowCode | ウィンドウズ | 64 ビットおよび 32 ビット アプリケーション、C、C++、.NET、および任意の言語コンパイラによって生成された dll。 | 時間のかかる関数を識別し、メモリ リークとエラーを検出するパフォーマンスおよびメモリ プロファイラー。 | 独自の |
| gprof | Linux/Unix | gccでサポートされている任意の言語 | サンプリングとコールグラフプロファイリングを組み合わせたツールがいくつかあります。可視化ツールセットであるVCG ツール は、コールグラフ描画インターフェース(CGDI)を使用して gprof とインターフェースします。gprof とインターフェースする別の可視化ツールとしてKProfがあります。 | フリー/オープンソース - BSD バージョンは4.2BSDの一部であり、GNU バージョンはGNU Binutils ( GNU プロジェクトによる) の一部です。 |
| HWPMC | FreeBSD 6.0以降 | 複数のアーキテクチャをサポートする、システムレベルおよびプロセスレベルのカウントとサンプリングを行うハードウェア パフォーマンス監視フレームワーク。 | BSD | |
| インスタナ | Linux、Windows、iOS、Android、Azure、AWS、AIX、Solaris、HP/UX、zOS、zLinux | .NET、.Net core、Java、PHP、Ruby、Python、Crystal、Scala、Kotlin、Clojure、Haskell、Node.js、Webブラウザ、Apache、Nginx、Cassandra、Hadoop、MongoDB、Elasticsearch、Kafka | アプリケーション パフォーマンス管理を参照してください。 | 独自の |
| Xcodeを使った楽器 | macOS | C、C++、Objective-C/C++、Swift、Cocoa アプリ。 | Instruments は、CPU アクティビティの変化、メモリ割り当て、ネットワークおよびファイル アクティビティなど、アプリケーションで発生するすべてのイベントをグラフや統計とともに表示するタイムラインを表示します。 イベントのグループは、ファイル アクティビティ、メモリ割り当て、時間プロファイラー、GPU アクティビティなどから特定のインストルメントを選択することで監視されます。実行可能ファイルのシステム全体への影響については、システム トレース、システム使用状況、ネットワーク使用状況、エネルギー ログなどが役立ちます。 | 無料。独自仕様。同じく無料の Xcode にバンドルされています。 |
| インテルアドバイザー | Linux および Windows。macOS ではビューアのみ。 | C、C++、データ並列C++、Fortran | 設計および分析ツールのコレクション - ベクトル化 (SIMD) 最適化、スレッド プロトタイピング、自動ルーフライン分析、オフロード モデリング、フロー グラフ分析 | フリーウェアおよび独自仕様。Intel oneAPI Base Toolkitの一部として利用可能です。 |
| Linux トレース ツールキット(LTT) | リナックス | パッチを適用したカーネルが必要 | プロセスのブロッキング、コンテキストスイッチ、実行時間に関するデータを収集します。これは、複数のプロセスまたはスレッドにわたるパフォーマンスの問題を特定するのに役立ちます。LTTng に置き換えられました。 | GPL |
| LTTng (Linux トレース ツールキット次世代) | リナックス | カーネル、アプリケーション、ライブラリの相関トレース用のシステム ソフトウェア パッケージ。 | GPL/LGPL/MIT | |
| Oプロフィール | リナックス | 割り込みハンドラーやカーネル自体などのプロファイル作成が難しいプログラムを含む、Linux システム上で実行されているすべてのものをプロファイルします。 | キャッシュミス、ストール、メモリフェッチなどをカウントする Linux 用のサンプリング プロファイラー。 | オープンソース GPLv2 |
| Oracle Solaris Studioパフォーマンスアナライザ | Linux、Solaris | C、C++、Fortran、Java、MPI | パフォーマンスとメモリのプロファイラー。 | プロプライエタリフリーウェア |
| パフォーマンスツール | Linuxカーネル2.6.31以上 | 複数のアーキテクチャ上のハードウェア イベントをサポートするサンプリング プロファイラー。 | GPL | |
| パフォーマンス アプリケーション プログラミング インターフェース(PAPI) | 様々な | 最新のマイクロプロセッサ上のハードウェア パフォーマンス カウンターのライブラリ。 | ||
| Intelによるピン | Linux、Windows、macOS、Android | ユーザーがカスタム プログラム分析ツールを作成できるようにする動的バイナリ インストルメンテーション システム。 | 非商用利用は無料ですが、プロプライエタリです | |
| ラショナル ピュリファイプラス | AIX、Linux、Solaris、Windows | パフォーマンス プロファイリング ツール、メモリ デバッガー、コード カバレッジツール。 | 独自の | |
| スカラスカ | リナックス | C/C++、Fortran | 並列トレース アナライザー。 | フリー/オープンソース(BSDライセンス) |
| Appleの Shark | macOS(10.7で廃止) | パフォーマンス アナライザー。 | プロプライエタリフリーウェア | |
| 超光速 | Windows、Xbox One、PlayStation | C++、Rust、.NET | ゲーム開発に重点を置いたパフォーマンス プロファイラー (サンプリングまたはインストルメント) およびアナライザー。 | 独自の |
| システムタップ | リナックス | プログラム可能なシステム トレース/プローブ ツール。カーネルやそのユーザー空間の時間ベース、パフォーマンス カウンタ ベース、または関数ベースのプロファイルを生成するようにスクリプト化できます。 | オープンソース | |
| ヴァルグリンド | Linux、FreeBSD、Solaris/illumos、macOS、Android | アセンブラを含むすべて | デバッグとプロファイリングのためのシステム。メモリ管理とスレッドのバグを検出したり、パフォーマンスをプロファイリングするためのツール(cachegrindとcallgrind)をサポートしています。KCacheGrind 、 valkyrie、alleyoopはvalgrindのフロントエンドです。 | フリー/オープンソース(GPL) |
| Intel CorporationのVTune Profiler (旧称 VTune Amplifier) | Linux、Windows、macOS はビューアのみ | C、C++、C#、データ並列C++(DPC++)、Fortran、.NET、Java、Python、Go、ASMアセンブリ | サンプリング、インストルメンテーション、プロセッサトレース技術を用いて実装されたプロファイリング分析のコレクション。ホットスポット、スレッド、HPC、I/O、FPGA、GPU、システム、スロットリング、マイクロアーキテクチャの分析が含まれます。 | フリーウェアおよびプロプライエタリ。Intel oneAPI ベース ツールキットの一部としても利用可能です。 |
| MicrosoftのWindows パフォーマンス分析ツールキット | Windows、Linux、Android | CPUサンプリング、CPUスケジューリング、ディスクなど、システム全体の主要なWindowsパフォーマンス分析ツール。Linux LTTngおよびPerf CPUサンプリングトレース、さらにプラグイン経由でAndroid Perfettoトレースも開くことができます。 | Linux / Android オープンソースプラグインを備えた独自のフリーウェア | |
| 右回転ズーム | Linux、macOS、Windows のビューアのみ | ARM および x86 プロセッサ上のほとんどのコンパイル言語をサポートします。 | グラフィカルおよびコマンドラインの統計 (イベントベース) プロファイラー。 | |
| ビジュアルシム | Linux、macOS、Microsoft Windows | C/C++/SystemCをサポート | 複雑な電子システムのアーキテクチャを選択し、パフォーマンス、電力、信頼性の観点から分析および検証するためのグラフィカル モデリングおよびシミュレーション プラットフォーム。 | 独自の |
CとC++
- Linux プラットフォームをサポートするパフォーマンス プロファイラー、Arm MAP 。
- AppDynamics は、SDK 経由の C/C++ アプリケーション向けのアプリケーション パフォーマンス管理サービスです。
- AQtime Pro は、Microsoft Visual Studio および Embarcadero RAD Studio に統合することも、スタンドアロン アプリケーションとして実行することもできるパフォーマンス プロファイラーおよびメモリ割り当てデバッガーです。
- IBM Rational Purify は、パフォーマンス分析を可能にするメモリ デバッガーでした。
- Instruments (Xcode にバンドル) は、実行可能ファイルのメモリ割り当て、時間の使用、ファイルシステムのアクティビティ、GPU アクティビティなどをプロファイルするために使用されます。
- Intel Parallel Studioには、シリアルプログラムと並列プログラムの両方をチューニングする Intel VTune Amplifier が含まれています。また、Intel Advisor と Intel Inspector も含まれています。Intel Advisor はベクトル化(SIMD 命令の使用)を最適化し、スレッド実装のプロトタイプを作成します。Intel Inspector は、競合、デッドロック、メモリエラーを検出してデバッグします。
- Parasoft Insure++は、メモリの割り当てをリアルタイムで表示およびアニメーション化し、メモリの急増、断片化、過剰使用、ボトルネック、リークを明らかにするグラフィカル ツールを提供します。
- Visual Studio Team System Profiler は、Microsoft の商用プロファイラーです。
ジャワ
- inspectIT は、 Apache ライセンスバージョン 2.0 (ALv2)に基づいて利用できる、ソフトウェア アプリケーションを監視および分析するためのオープン ソースのアプリケーション パフォーマンス管理(APM) サービスです。
- JConsoleはJava開発キットに付属するプロファイラです。
- Jプロファイラー
- オーバーヘッドの少ないプロファイラー、JRockit Mission Control 。
- Netbeans Profiler は、 NetBeans IDEに統合されたプロファイラです(内部的にはjvisualvmプロファイラを使用します)
- Plumbr は、Javaアプリケーションのパフォーマンス監視ツールで、自動で根本原因を検出します。メモリリーク、GCの非効率性、データベースや外部Webサービスの呼び出し速度の低下、スレッドのロックなど、パフォーマンスの問題を、原因となっているソースコード行にリンクします。
- OverOps は、現代のソフトウェア サプライ チェーンの継続的な信頼性を実現し、すべてのエラーの根本原因を自動的に検出して自動化します。
- VisualVMは、複数のコマンドラインJDKツールと軽量なプロファイリング機能を統合したビジュアルツールです。Java Development Kitバージョン6 Update 7以降にバンドルされています。
JavaScript
- Firefoxウェブブラウザの開発者ツールにはパフォーマンスツールが含まれており、ウェブサイトのJavaScriptパフォーマンスに関する情報を提供します。[ 2 ]
- Microsoft Visual Studio AJAX プロファイリング拡張機能は、 Microsoft ResearchによるJavaScript用の無料プロファイリング ツールです。
。ネット
- CLR プロファイラーは、 CLRアプリケーション用に Microsoft が提供する無料のメモリ プロファイラーです。
- GlowCodeは、C#やその他の.NET言語を使用した.NETアプリケーション向けのパフォーマンスおよびメモリプロファイラーです。ネイティブ、マネージド、そしてWindows x64とx86の混在アプリケーションにおいて、時間のかかる関数を特定し、メモリリークやエラーを検出します。
- ビジュアルスタジオ
PHP
参照
参考文献
- ^ “CodeXL” . 2013年9月19日時点のオリジナルよりアーカイブ。2013年9月26日閲覧。
- ^ 「パフォーマンス - Firefox 開発ツール | MDN」MDN Web Docs . 2021年10月27日閲覧。