小编Mik*_*kin的帖子

为什么在 Scala 3 中 while 循环填充数组这么慢?

我有2个填充Array[Int]的实现,如下所述。第一个执行时间为 84 毫秒,第二个执行速度慢 100 倍:

Execute 'filling via Array.fill' in 84 ms
Execute 'filling via while' in 8334 ms
Run Code Online (Sandbox Code Playgroud)

为什么第二个变体需要 100 倍的时间?它不是 GC,因为我可以在第二次执行时以相同的时间删除第一次执行。我在 Java 11 上运行它,并使用 Scala 3:

.jdks/adopt-openjdk-11.0.11/bin/java ... Fill
Run Code Online (Sandbox Code Playgroud)

更重要的是,如果您打开Array.fill实现,您将通过 while... 看到实现

Execute 'filling via Array.fill' in 84 ms
Execute 'filling via while' in 8334 ms
Run Code Online (Sandbox Code Playgroud)

PS:我在 Scala 2.12 上重复这个测试:

Execute 'filling via Array.fill' in 118 ms
Execute 'filling via while' in 6 ms
Run Code Online (Sandbox Code Playgroud)

Scala 3 中的问题...

PPS:在这种情况下,for (i <- 0 until n)可以正常速度工作,计时与 Scala …

arrays optimization scala scala-3

5
推荐指数
1
解决办法
438
查看次数

java.lang.NoSuchMethodError: 'void akka.actor.ExtensionId.$init$(akka.actor.ExtensionId)'

我只是想使用 akka 在 scala 项目中实现一个小示例 REST 端点。代码如下

import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{ContentTypes, HttpEntity}

import akka.actor.typed.ActorSystem
import akka.actor.typed.scaladsl.Behaviors
import scala.io.StdIn

import scala.concurrent.ExecutionContextExecutor


object ViewAPI :
  @main def run(): Unit = {
    implicit val system = ActorSystem(Behaviors.empty, "my-system")
    implicit val executionContext = system.executionContext
    val route =
      path("hello") {
        get {
          complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say hello to akka-http</h1>"))
        }
      }
    val bindingFuture = Http().newServerAt("localhost", 9001).bind(route)

  }
Run Code Online (Sandbox Code Playgroud)

我的 sbt 文件如下所示:

libraryDependencies += ("com.typesafe.akka" %% "akka-http" % "10.2.9").cross(CrossVersion.for3Use2_13)

libraryDependencies += "com.typesafe.akka" %% "akka-actor-typed" % "2.6.19"

libraryDependencies += "com.typesafe.akka" …
Run Code Online (Sandbox Code Playgroud)

scala akka akka-stream akka-http scala-3

3
推荐指数
1
解决办法
501
查看次数

标签 统计

scala ×2

scala-3 ×2

akka ×1

akka-http ×1

akka-stream ×1

arrays ×1

optimization ×1