-
Notifications
You must be signed in to change notification settings - Fork 0
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