0

私は現在、Gitバージョン管理下で大規模なアプリケーションのリファクタリングに取り組んでいます。変更した関数をマスターブランチと不安定なブランチの間でベンチマークできるようにしたいと思います。

現在、私は次のような簡単なスクリプトを実行することを考えています。

use Benchmark qw(:all) ;
use my_module ;

$count = -10

# Checkout my master code
system qw(git checkout <my_currently_in_production_version>) ;

timethis($count, sub {my_function()});

# Checkout my unstable code
system qw(git checkout <my_currently_unstable_version>) ;

something_to_reload_my_module();

timethis($count, sub {my_function()});

しかし、それは私には一種のハックな感じがします。Gitブランチ間のベンチマーク機能に対するよりクリーンなソリューションはありますか?

助けてくれてありがとう

編集:私は主にベンチマークモジュールのようなものを探していますが、存在する場合はブランチ変更のサポートがあります。

4

1 に答える 1

2

さて、あなたは各バージョンをチェックアウトする必要があるでしょう、しかし私は何も「アンロード」しようとはしません。それはただ問題を求めているだけです。つまり、2つのPerlインタープリターを実行する必要があります。1つは古いコード用で、もう1つは新しいコード用です。

私がすることは、適切なタイミングを実行し、結果をファイルに保存するスクリプトを作成することです。両方のチェックアウトで実行します。2番目のスクリプトで結果を比較します。

git checkout stable
../tools/time_test > stable
git checkout unstable
../tools/time_test > unstable
compare_times stable unstable

compare_times(最初の4行はviaで実行できますsystem。)

于 2012-05-29T16:58:40.953 に答える