显然Seq
渐近地执行与所有可能的操作相同或更好[]
的操作。但是由于它的结构比列表更复杂,对于小尺寸,它的恒定开销可能会使其变慢。我想知道多少钱,特别是:
<|
相比慢了:
多少?Seq
与折叠/遍历相比,折叠/遍历慢了多少[]
(不包括折叠/遍历函数的成本)?\xs x -> xs ++ [x]
变慢的大小(大约)是|>
多少?++
变慢的大小(大约)是><
多少?viewl
与列表上的模式匹配相比,结果上的调用和模式匹配的成本是多少?- 与-元素列表相比,-元素占用
n
多少内存?(不计算元素占用的内存,只计算结构。)Seq
n
我知道这很难衡量,因为Seq
我们谈论的是摊销复杂性,但我想至少知道一些粗略的数字。