2016-08-20 50 views
-1

我有一個asp.net應用程序並試圖優化它的性能。我發現一個問題BitArray.Get方法性能。它的執行時間不同於從100到250ms。它太多了。此方法在IEnumerable.FirstOrDefault中調用。有什麼想法爲什麼發生這種情況,以及如何優化它? EF實現期間.net BitArray.Get性能問題

enter image description here

UPD

此方法調用出現。來自相同軌跡的另一個示例: enter image description here

還有其他示例,方法處理持續時間僅爲1ms。

+0

此樹中的兩個呼叫都是不可能的。這些數據來自哪裏? – usr

+3

您是否正在優化整體應用CPU消耗的0.01%?首先應該有更大的魚。 –

+1

查看上下文將很有用。請告訴我們你的代碼。也許有人可以優化它。撥打1,158,375次是252ms嗎? –

回答

2

你錯誤地解釋了數據。

在你的第二張照片BitArray.Get()需要大約3倍的時間與第一張圖片相比,並且電話的數量約爲3倍(約3.1mio相比,約1.2mio)。因此,我認爲以毫秒爲單位的時間反映了數百萬次的通話,而不僅僅是一次通話!在這兩種情況下,每次呼叫的時間約爲每次呼叫約200ns(218和201 ns)。只有8.4%的差異。這是非常一致的。

BitArray.Get()比你想象的要快100萬倍!