Skip to content

Performance (Small Collections)

Jakub Niemyjski 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 -7.8%

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

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

###Reverse

  • .Slice(step: -1).First()
    296 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 -7.0%

  • .Slice(-terce, terce, -1).First()
    241 ms

  • .Skip(terce).Take(terce).Reverse().First()
    259 ms

Clone this wiki locally