1

これは一種の一般的な質問です。問題は次のとおりです。

私は現在、他の5人と一緒にプロジェクトに取り組んでいます。私たちは皆、アプリケーション (Java EE) 内でさまざまなパフォーマンス チューニング プロジェクトを割り当てられています。ただし、元のコンポーネントと比較して、実際にどの程度の改善を達成したかを報告する必要があります。さまざまな時点でコードをチェックインしている場合、特定の時間における個々のパフォーマンスの改善を追跡するにはどうすればよいでしょうか?

コードにフラグを付けて、コードのすべての変更を追跡することを考えていましたが、たとえば、整数オブジェクトの代わりにプリミティブ データ型を利用するように改善したとしましょう。改善は他の誰かの仕事に及ぶかもしれません。

ありがとう。:)

4

1 に答える 1

3

パフォーマンスの向上 (速度の向上または RAM の低下) については、テストベッドをセットアップする必要があります。単体テストでできない場合、Web アプリケーションであれば JMeter のテスト計画を書いてみてください。

常に同じパラメーターを使用してテストを実行します (同じ JVM、同じ最大ヒープで開始、テスト内の同じ数のスレッドなど...)。

最適化されていないアプリケーションで実行し、何らかのツールを使用してベンチマーク データを取得します (jdk には多くのツールがあります。jvisualvm は簡単ですが、人間の操作が必要です。jmap は自動化できます)。

最適化されていないバージョンでテスト計画を完了するために、500Mb の RAM と 10 分を使用するとします。

これらのテストを実行することで、各開発者は、行った変更が状況を改善しているか、何も変更していないか、さらには悪化させているかを、ソースのバージョン管理でチェックする前にテストできます。

コードをチェックインするので、誰がどの変更をチェックインしたかがわかります。(git、svn、またはその他の最新のソース バージョン管理システムを使用して) 特定のバージョンをチェックアウトできます。

さまざまなバージョンに対してテストを実行すると、RAM の消費量、時間、またはその他のメトリックを下げるタスクが進んでいるかどうか、および副作用として、誰がどの数値に貢献したかを確認できます。

Hudson、Jenkins などの継続的インテグレーション ツールを使用して自動化することもできます。 - 善良な人が誰であるかをコンピューターで伝えることは、チームの士気にとって最善ではありません。

于 2012-08-01T02:39:54.633 に答える