FS2 Queue 'enqueue' is slow
dmgcodevil opened this issue · 1 comments
dmgcodevil commented
FS2 Queue 'enqueue' is slow:
val n = 1000000
val elements: Vector[Int] = (0 until n).foldLeft(Vector.empty[Int])(_ :+ _)
val chunk = Chunk.apply(elements: _*)
override def run(args: List[String]): IO[ExitCode] = {
for {
start <- IO(System.nanoTime())
q <- fs2.concurrent.InspectableQueue.bounded[IO, Int](n)
_ <- fs2.Stream.chunk(chunk).covary[IO].through(q.enqueue).compile.drain
time <- IO(TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start))
size <- q.getSize
_ <- IO(println(s"queue size= $size; time = $time"))
} yield ExitCode.Success
}
Original issue: typelevel/fs2#1551
dmgcodevil commented
replaced with Monix queue