我想做以下几点:
每根光纤中的Ref
对象光纤扩展了IOApp.Simple { val程序= for { ref <- Ref.ofIO, Int total <- ref.get _ <- IO(println(s"ref总计is:${Ref.of}“)
我还想知道完成这个任务需要多长时间(毫秒).
发布于 2022-09-18 20:53:22
这是你想要的密码。
object Fibers extends IOApp.Simple {
private def logic(ref: Ref[IO, Int], nFibers: Int, nIterations: Int): IO[Unit] =
List.range(start = 0, end = nFibers).parTraverse_ { _ =>
List.range(start = 0, end = nIterations).traverse_ { _ =>
ref.update(_ + 1)
}
}
override final val run: IO[Unit] =
IO.ref(0).flatTap { ref =>
logic(ref, nFibers = 100, nIterations = 1000)
} flatMap { ref =>
ref.get.flatMap { total =>
IO.println(s"Total is: ${total}")
}
}
}
现在,对于基准测试,请参考适当的基准测试工具。
https://stackoverflow.com/questions/73759262
复制相似问题