Loading spreadsheet…
Opening in Numbers for Mac...
Your browser isn’t fully supported.
For the best Numbers for iCloud experience, use a supported browser.
Learn More
Cancel
Continue
Runtime (μs)
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
179
71
232
180
334
71
AnyCollectionLazy
327093
110117
332
327441
238
110531
AnySeqCRangeIter
87412
26689
73902
68193
64800
22462
AnySeqCRangeIterLazy
87224
26864
331
68367
237
22479
AnySeqCntRange
160
51
212
160
315
51
AnySeqCntRangeLazy
160
51
332
160
237
51
AnySequence
28524
39602
28833
23534
71075
35484
AnySequenceLazy
28464
40369
11557
23572
8962
35588
Array
162
46
230
123
326
59
ArrayLazy
198
56
507
159
197
69
CountableRange
77
26
79
77
81
26
CountableRangeLazy
77
26
254
77
77
26
Sequence
10767
9126
8098
8148
6288
34846
SequenceLazy
11842
8993
193
9027
116
35574
Operation Slowdown relative to fastest Sequence
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
2,3x
2,7x
2,9x
2,3x
4,3x
2,7x
AnyCollectionLazy
4 248x
4 235x
4,2x
4 252x
3,1x
4 251x
AnySeqCRangeIter
1 135x
1 027x
935x
886x
842x
864x
AnySeqCRangeIterLazy
1 133x
1 033x
4,2x
888x
3,1x
865x
AnySeqCntRange
2,1x
2x
2,7x
2,1x
4,1x
2x
AnySeqCntRangeLazy
2,1x
2x
4,2x
2,1x
3,1x
2x
AnySequence
370x
1 523x
365x
306x
923x
1 365x
AnySequenceLazy
370x
1 553x
146x
306x
116x
1 369x
Array
2,1x
1,8x
2,9x
1,6x
4,2x
2,3x
ArrayLazy
2,6x
2,2x
6,4x
2,1x
2,6x
2,7x
CountableRange
1x
1x
1x
1x
1,1x
1x
CountableRangeLazy
1x
1x
3,2x
1x
1x
1x
Sequence
140x
351x
103x
106x
82x
1 340x
SequenceLazy
154x
346x
2,4x
117x
1,5x
1 368x
Sequence Slowdown relative to fastest Operation
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
2,5x
1x
3,3x
2,5x
4,7x
1x
AnyCollectionLazy
1 374x
463x
1,4x
1 376x
1x
464x
AnySeqCRangeIter
3,9x
1,2x
3,3x
3x
2,9x
1x
AnySeqCRangeIterLazy
368x
113x
1,4x
288x
1x
95x
AnySeqCntRange
3,1x
1x
4,2x
3,1x
6,2x
1x
AnySeqCntRangeLazy
3,1x
1x
6,5x
3,1x
4,6x
1x
AnySequence
1,2x
1,7x
1,2x
1x
3x
1,5x
AnySequenceLazy
3,2x
4,5x
1,3x
2,6x
1x
4x
Array
3,5x
1x
5x
2,7x
7,1x
1,3x
ArrayLazy
3,5x
1x
9,1x
2,8x
3,5x
1,2x
CountableRange
3x
1x
3x
3x
3,1x
1x
CountableRangeLazy
3x
1x
9,8x
3x
3x
1x
Sequence
1,7x
1,5x
1,3x
1,3x
1x
5,5x
SequenceLazy
102x
78x
1,7x
78x
1x
307x
Lazy vs Eager
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
179
71
232
180
334
71
AnyCollectionLazy
182734 %
155094 %
143 %
181912 %
71 %
155677 %
AnySeqCRangeIter
87412
26689
73902
68193
64800
22462
AnySeqCRangeIterLazy
100 %
101 %
0,4 %
100 %
0,4 %
100 %
AnySeqCntRange
160
51
212
160
315
51
AnySeqCntRangeLazy
100 %
100 %
157 %
100 %
75 %
100 %
AnySequence
28524
39602
28833
23534
71075
35484
AnySequenceLazy
100 %
102 %
40 %
100 %
13 %
100 %
Array
162
46
230
123
326
59
ArrayLazy
122 %
122 %
220 %
129 %
60 %
117 %
CountableRange
77
26
79
77
81
26
CountableRangeLazy
100 %
100 %
322 %
100 %
95 %
100 %
Sequence
10767
9126
8098
8148
6288
34846
SequenceLazy
110 %
99 %
2 %
111 %
2 %
102 %
Slowdown Any vs Direct (Relative)
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
110 %
154 %
101 %
146 %
102 %
120 %
AnyCollectionLazy
165198 %
196638 %
65 %
205938 %
121 %
160190 %
AnySeqCRangeIter
AnySeqCRangeIterLazy
AnySeqCntRange
208 %
196 %
268 %
208 %
389 %
196 %
AnySeqCntRangeLazy
208 %
196 %
131 %
208 %
308 %
196 %
AnySequence
265 %
434 %
356 %
289 %
1130 %
102 %
AnySequenceLazy
240 %
449 %
5988 %
261 %
7726 %
100 %
Array
162
46
230
123
326
59
ArrayLazy
198
56
507
159
197
69
CountableRange
77
26
79
77
81
26
CountableRangeLazy
77
26
254
77
77
26
Sequence
10767
9126
8098
8148
6288
34846
SequenceLazy
11842
8993
193
9027
116
35574
Lazy vs Eager (Multiple)
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
179
71
232
180
334
71
AnyCollectionLazy
1 827x
1 551x
1,4x
1 819x
0,7x
1 557x
AnySeqCRangeIter
87412
26689
73902
68193
64800
22462
AnySeqCRangeIterLazy
1x
1x
0,004x
1x
0,004x
1x
AnySeqCntRange
160
51
212
160
315
51
AnySeqCntRangeLazy
1x
1x
1,6x
1x
0,8x
1x
AnySequence
28524
39602
28833
23534
71075
35484
AnySequenceLazy
1x
1x
0,4x
1x
0,1x
1x
Array
162
46
230
123
326
59
ArrayLazy
1,2x
1,2x
2,2x
1,3x
0,6x
1,2x
CountableRange
77
26
79
77
81
26
CountableRangeLazy
1x
1x
3,2x
1x
1x
1x
Sequence
10767
9126
8098
8148
6288
34846
SequenceLazy
1,1x
1x
0,02x
1,1x
0,02x
1x
Slowdown Any vs Direct (Multiple)
Sequence
dropFirst
dropLast
dropWhile
prefi x
prefi xWhile
suffi x
AnyCollection
1,1x
1,5x
1x
1,5x
1x
1,2x
AnyCollectionLazy
1 652x
1 966,4x
0,7x
2 059,4x
1,2x
1 601,9x
AnySeqCRangeIter
AnySeqCRangeIterLazy
AnySeqCntRange
2,1x
2x
2,7x
2,1x
3,9x
2x
AnySeqCntRangeLazy
2,1x
2x
1,3x
2,1x
3,1x
2x
AnySequence
2,6x
4,3x
3,6x
2,9x
11,3x
1x
AnySequenceLazy
2,4x
4,5x
59,9x
2,6x
77,3x
1x
Array
162
46
230
123
326
59
ArrayLazy
198
56
507
159
197
69
CountableRange
77
26
79
77
81
26
CountableRangeLazy
77
26
254
77
77
26
Sequence
10767
9126
8098
8148
6288
34846
SequenceLazy
11842
8993
193
9027
116
35574
Benchmark 2008 MBP, Swift master circa November 2017:
a10 Series from
https://palimondo.github.io/robust-microbench/#raw-data