Skip to content

Performance (Small Collections)

nabuk edited this page Nov 10, 2013 · 2 revisions

Following performance tests were performed on simple, enumerable collection generated by Enumerable.Range(0, collectionSize). Partial times, longer than normalized deviation, were discarded.

###Settings

  • Collection size: 10
  • Sample size: 50
  • Iterations per sample: 1,000,000

##NSlice vs. LINQ
###Get items at odd indices -8.0%

.Slice(1, step: 2).Last()
218 ms

.Where((x, i) => i % 2 == 1).Last()
237 ms

###Reverse

.Slice(step: -1).First()
299 ms

.Reverse().First()
286 ms

###Reverse and get at even indices -25.3%

.Slice(step: -2).Last()
388 ms

.Reverse().Where((x, i) => i % 2 == 0).Last()
519 ms

###Get middle terce

.Slice(terce, terce*2).Last()
184 ms

.Skip(terce).Take(terce).Last()
187 ms

###Get middle terce reversed -6.7%

.Slice(-terce, terce, -1).First()
242 ms

.Skip(terce).Take(terce).Reverse().First()
260 ms

Clone this wiki locally