2
下面的代碼提取幾乎永遠:瞭解斯卡拉集合執行
val r =(1 to 10000)
.map(_ => Seq.fill(10000)(0.0))
.map(_.size)
.sum
雖然這是非常快:
val r =(1 to 10000)
.map(_ => Seq.fill(10000)(0.0).size)
.sum
這是爲什麼?我不會放棄理解執行語句的順序。在第一種情況下,首先創建大小10000的10000 Seqs,然後將所有這些大小映射爲?或者是每個Seq單獨映射到大小(並因此被垃圾收集)?