2012-05-29 73 views
0

我目前正在Git版本控制下對大型應用程序進行一些重構。 我希望能夠在我的主分支和我的不穩定分支之間對我修改過的函數進行基準測試。對Git分支之間的Perl函數進行基準測試

目前我正在考慮做一個簡單的腳本一樣的:

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()}); 

但它給我感覺那種的hackish。有沒有更清潔的解決方案來測試Git分支之間的功能?

感謝所有幫助

編輯:我主要是尋找類似Benchmark模塊,但是支持分支變化的,如果它存在。

回答

2

那麼,你將需要簽出每個版本,但我不會試圖「卸載」任何東西。這只是要求麻煩。這意味着需要運行兩個Perl解釋器:一個用於舊代碼,另一個用於新代碼。

我會做的是編寫一個腳本,執行適當的時間並將結果保存到文件中。在兩個結帳中運行它。有第二個腳本比較結果。

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

(前四行可以通過經由compare_timessystem來完成。)

+0

這可能確實比重裝代碼更安全。但我主要是想找一個模塊解決方案(比如使用具有切換分支功能的Benchmark)。如果我沒有找到任何其他解決方案,您將成爲答案。謝謝。 – Mayeu

相關問題