2012-06-20 195 views
3

我有一個我們實現的解析器,我想將它與其他一些商業解析器進行比較。其他解析器正在以「每秒百萬次迭代」的速度衡量它們的速度。我如何測量C#中解析器的迭代次數?每秒百萬次迭代

+0

在循環中添加一個計數器,以便每次循環增加一次。計算一定數量的迭代需要運行的時間量。將計數器的最終值除以運行時間。順便說一句,解析器是什麼? – eboix

+1

運行它幾百萬次迭代,meassuer時間和鴻溝? – Carsten

+0

謝謝!方程式解析器。 – Emo

回答

1

這裏是如何做到這一點在Visual Studio中 http://www.dotnetperls.com/benchmark

還得到一個acurate的結果Complie到一個exe和運行作爲一個獨立的控制檯應用程序,不要從Visual Studio中運行它爲例。

1

爲了使測量具有可比性,您需要知道這些「迭代」在商業解析器中的含義。

一旦確認了這一點,使用StopWatch類來衡量執行時間。在與商業解析器(相同的應用程序)相同的上下文中運行解析器,在解析器中計算「迭代」(無論在您的上下文中),並通過將計數與測量時間分開來計算「每秒迭代次數」。

1

在解析器中添加一些計數器。什麼是「iteration」本身?這是重複過程。 例如如果您的解析器專門用於解析電話,則來自Gived數據的一個解析的電話號碼本身就是迭代的。計算這個迭代。

1

我會做的是,看看商業語法分析器的代碼,看看如何使用像dotPeekReflector這樣的工具完成性能測量。然後以相同的方式執行它正好,以使其具有可比性。否則你的結果將完全沒有意義。