どのように異なるプログラミング言語で書かれたライブラリのパフォーマンステストを実施するには?

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

質問

は問題がある:類似または同等の範囲とのプログラミングライブラリーの数が与えられる(例えば、XMLパーサ、正規表現、マークアップ、...)。 1は、ライブラリは異なるプログラミング言語で書かれていても、これらのライブラリのパフォーマンステストを実行し、比較(およびレポートを生成)できるツールがある(例えばJavaの、C#の、ルビー、PythonやPerlなどは、...) ?

私は、これらの opensourcetesting.org/performance.php のを見て、それらのどれも取り付けられていません上記(ややぼやけ)要件に

のツールキットやフレームワークは、クロスランゲージクロスプラットフォームの性能試験のためにそこにありますか?

感謝します。

役に立ちましたか?

解決

私は複数の言語のための単一のツールキットを使用しようとしないでしょう。つまり、各アプリケーションのための最高の(あるいは平均)の性能を引き出す可能性は低いです。

その代わり、私はそれをテストするために何が起こっているかを定義し、共通のデータセットを持っているフレームワークのデザインを思い付くしようとします。その後、各言語/ライブラリは、そのライブラリのための適切な操作をテストし、独自のフレームワークの実装のを提供することができます。彼らはの正確なの同じ構文/呼び出しを使用していない場合でも、その方法は、操作が「論理的に等価」することができます。あなたは、の慣用のそのライブラリ/言語のコードだけではなく、A最小公分母をテストしてしまう。

これは、私はプロトコルバッファをベンチマーキングするために撮影したアプローチです。これまでのところ、私は非常に基本的なフレームワークは、C#やJavaで実装を持っている、と私は今、全体の「ベンチマークスクリプトは」実行することを可能にする、より豊かなフレームワークを書いています。一つの理想的な目的は、同じプラットフォーム(プロトコルバッファの例えば異なる.NET実装)内の異なる実装が非常に少ない労力で同じコアベンチマーク・コードにフックすることができなければならないということである。

重要なことは、私の心に、そして共通のデータ(彼らはのすべてののすべてののライブラリで実装されていない方にも)操作の共通セットを持つことですセットする。それはベンチマークは意味のあることができる唯一の方法です。

他のヒント

可能であれば

、それはあなたが一つのモジュールをプラグインし、他とそれを切り替えることができますので、依存性注入のいくつかのフォームを使用するのがベストでしょう。あなたは難しい仕事が、全体的なデザインより良いを作ることカントー(あるラッパー)、前にこのようなライブラリーのためのユニークなインターフェイスを作成する必要があります。あなたはベンチマークにしたい場合は正側では、以前のインターフェースは完全である必要はありませんが、ちょうどあなたがするときPERF最もbenefitialことだと思うものを公開します。質問である。

の能力は非常に多く使用される言語に依存します。

私は人工的なテストを好きではありません。彼らは、人々は、彼らの両方が同じもののように見えながら、1つのライブラリ関数が他のライブラリ関数その後、多かれ少なかれないことを見落とす傾向にあり、IMO inacurateほとんどの時間です。私はめったにプロパティのようなものを持っていなかったベンチマークが発生しません。

他の側面には、完全に、より良い図書館のようなものはほとんどありません。多くの図書館本良い他の同様のライブラリが吸うことができるいくつかのシナリオでのパフォーマンス、およびその逆。

パフォーマンスがアプリの最も重要なことである場合は、

ですから、IMOを行うための最善のことは、ライブラリのプラグイン/アウトカップル、その後、インポートしたい操作のためのインタフェースを作成し、実際のベンチマークの違いを確認することです、アクションでアプリのベンチマークではなく、いくつかの人工数学マンボジャンボ...

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