13

C ++用の優れたグラフィカルチャートを生成するパフォーマンステストライブラリとフロントエンドについて誰かが提案を持っているかどうか興味がありました(gcovがカバレッジデータを生成する方法や、コードカバレッジデータを表示するためのフロントエンドがあります)。次のようなチャートを作成できること:

http://download.eclipse.org/eclipse/downloads/drops/S-3.7M4-201012081300/performance/performance.php?fp_type=0

かなり滑らかになります。現在、ユニットテストにはcppunitを使用しているので、それと統合するものがあるかもしれません。

さらに詳しい情報:Intel x86-64マシン上のLinux(Ubuntu Lucid / Maverickを使用)でコンパイルしています。

4

4 に答える 4

5

いくつかの提案:

  • googletest C ++フレームワークは、JUnit互換のレポートを作成できます
  • ハドソンを使用してテストを実行できます。C++アプリケーションをコンソールアプリケーションとして実行できる必要があるだけです。
  • Hudson Performance Pluginは、JUnitレポートからグラフィカルチャートを生成できます。
  • 他にも多くのプラグインがあります。
于 2011-01-05T18:54:16.813 に答える
2

Linuxでは、valgrindツールキットを試すことができます。Valgrindには、コードをプロファイリングできるcallgrindツールが含まれています。KCacheGrindは、cachegrindの出力を非常にうまく視覚化します。

于 2011-01-05T17:57:03.507 に答える
2

ここここの回答で、この種のことを経験したことから、うまくいけば関連するメモがいくつかあります。

既存のCppUnitセットアップをscoped_timer(上記の2番目を参照)のようなものと組み合わせたり、一部のグラフを少し後処理したりしても、ニーズを満たせない場合がある理由はありません。CppUnitには、単体テストの時間をログアウトするプラグイン( "Clocker"?)が含まれていると思いますが、実際には、この種のパフォーマンステストには、各テストの一部だけの時間を計りたいと思うので、実際にはそれほど有用ではないと思います。すべてのセットアップコードではありません。

于 2011-01-05T20:23:53.970 に答える
2

2つのパフォーマンステストフレームワークが役立ちます。

  • SkyPat(<a href="https://skypat.skymizer.com" rel="nofollow"> https://skypat.skymizer.com)
  • Hayai(<a href="https://github.com/nickbruun/hayai" rel="nofollow"> https://github.com/nickbruun/hayai)

どちらもGoogleTestフレームワークに触発されており、パフォーマンステストをサポートするインターフェースを提供しているため、元のgoogletestをHayaiまたはSkyPatに簡単に転送できます

SkyPatは、単体テストとperf_evnetを組み合わせたものです。Google Testの概念を拡張し、PMUにアクセスするためのインターフェースを提供します。perf_eventは、コンパイラなど、タイミングの変動に敏感なツールに役立つ正確なサイクルカウントをSkyPatに提供します。SkyPatは、PMUイベント(eq:サイクル、命令、キャッシュ参照、キャッシュミスなど)によってコードの一部をプロファイリングすることもできます。

Hayaiは、パフォーマンステストフレームワークでさまざまなOS(Windows: QueryPerformanceCounter()、Linux:gethrtime()、Apple(OSX、iOS) :)のいくつかのパフォーマンス測定方法をサポートしています。mach_absolute_time()

于 2016-10-06T16:00:34.893 に答える