一部のコードを変更したところ、4.5 倍速くなりました。なぜだろうと思います。以前は基本的に次のとおりでした。
def doThing(queue: Queue[(String, String)]): Queue[(String, String)] = queue match {
case Queue((thing, stuff), _*) => doThing(queue.tail)
case _ => queue
}
そして、これを次のように変更して、大幅な速度向上を実現しました。
def doThing(queue: Queue[(String, String)]): Queue[(String, String)] = queue.headOption match {
case Some((thing, stuff)) => doThing(queue.tail)
case _ => queue
}
なぜ_*
headOption と比べてそれほど高価なのですか?