7

アプリケーションのパフォーマンスが静的ビルドまたは共有ビルド、ストリップまたは非ストリップ、upx または no upx、gcc -O2 または gcc -O3、ハッシュまたは btree などとして優れているかどうかをテストして定量的に示したいと思ったことはありませんか?これはあなたのためのスレッドです。アプリケーションを調整する方法は何百もありますが、各実験の結果をどのように収集、整理、処理、視覚化するのでしょうか。

Mozilla のPerftasticとコンセプトが似ているオープン ソース アプリケーション パフォーマンス エンジニアリング/プロファイリング フレームワークを数か月間探していました。そこでは、さまざまなチューニング実験の何百もの化身を​​開発/ビルド/テスト/プロファイリングできます。

いくつかの要件:

プラットホーム

SUSE32 および SUSE64

データ形式

非常に柔軟で、コンパクトで、シンプルで、階層的です。いくつかの可能性があります。

データ収集

柔軟でカスタマイズ可能なプラグイン。/proc、sys 時間、経過時間、CPU 使用率、メモリ プロファイル、リーク、valgrind ログ、アリーナの断片化、I/O、localhost ソケット、バイナリ サイズ、開いている fds からのパフォーマンス データなど、アプリケーションから収集するデータはたくさんあります。など。ホストシステムからのものもあります。これに私が選んだ言語は Python です。これらのプラグインを開発して、すべての異なる形式のデータを監視および/または解析し、それらをフレームワークのデータ形式で保存します。

タグ付け

GCC のバージョンやコンパイル オプション、プラットフォーム、ホスト、アプリ オプション、実験、ビルド タグなどのデータを含むすべての実験にタグが付けられます。

グラフ化

歴史、比較、階層、動的、静的。

  • アプリケーションのビルドは、過去 3 年間連続して新しいアプリ バージョンを 1 日に数回リリースするカスタム CI サーバーによって行われます。これが、継続的な傾向分析が必要な理由です。新しい機能を追加したり、バグを修正したり、ビルド オプションを変更したりするときに、プロファイリング データを自動的に収集して傾向を確認したいと考えています。これは、さまざまな静的ビルドの生成が必要な場所です。
  • 分析に関しては、 Mozilla 動的グラフは比較グラフ作成に最適です。異なるタグ間の比較グラフがあれば素晴らしいと思います。たとえば、N ビルド バージョンの比較、プラットフォームの比較、ビルド オプションの比較などです。
  • 3K テストのテスト スイートがあり、データはテストごとに収集され、テスト間データからテストごと、タグ付けされたグループごとにグループ化され、回帰スイートが完成します。
  • 可能性にはRRDToolOrcaGraphiteが含まれます

グループ分けによる分析

  • マックス
  • 中央値
  • 平均
  • 標準偏差

プレゼンテーション

これらはすべて、アプリ サーバーを介して表示および制御されます。できれば、Django または TG が最適です。

インスピレーション

4

3 に答える 3

0

あなたの質問が正確にはわかりませんが、Java (Web) アプリケーションのプロファイリングには、netbeans プロファイラーと profiler4j (sourceforge で入手可能) を使用できます。私は両方を使用しており、Eclipse tptp よりも推奨できます。

Eclipse TPTP のセットアップ方法を参照してください。

およびhttp://profiler4j.sourceforge.net/

編集:申し訳ありませんが、これをPythonの質問としてタグ付けしたことに気付いたので、これは有効な回答ではないはずです.

于 2008-10-22T13:05:50.823 に答える
0

探しているものを構築する必要があるかもしれませんが、

  • ヴァルグラインド
  • ルーク・スタックウォーカー
  • 他の多くのオープンソース プロジェクト

また、目的がパフォーマンスを測定することではなく、パフォーマンスを改善することである場合は、このからいくつかのアイデアを得ることができます。ここで、これはその使用例です。

于 2009-10-30T11:37:11.203 に答える