Scala 我在JMC/JFR中看到的“$adapted$”方法是什么?
当使用Java Flight Recorder/Mission Control对一些scala代码进行基准测试时,我可以看到许多方法的名称中有一个Scala 我在JMC/JFR中看到的“$adapted$”方法是什么?,scala,jvm,jit,jmc,jfr,Scala,Jvm,Jit,Jmc,Jfr,当使用Java Flight Recorder/Mission Control对一些scala代码进行基准测试时,我可以看到许多方法的名称中有一个$adapted$。我可以想到一些可能性,看看签名 这些函数是否与java-8函数lambdas相同?i、 这不会生成堆分配吗 它们是泛型的专门化(在scala中,还是java中的模板) 或者它们是其他类型的优化 我在哪里可以读到更多关于这方面的内容呢?我想这是一种固定装置。Scala编译器通常滥用$in类名,一些java代码可能会失败,当您创建静
$adapted$
。我可以想到一些可能性,看看签名
- 这些函数是否与java-8函数lambdas相同?i、 这不会生成堆分配吗李>
- 它们是泛型的专门化(在scala中,还是java中的模板)
- 或者它们是其他类型的优化
我在哪里可以读到更多关于这方面的内容呢?我想这是一种固定装置。Scala编译器通常滥用$in类名,一些java代码可能会失败,当您创建静态对象时,它可能会生成一些额外的方法、包等
object Foo {
case class Bar()
}
val bar = new Foo.Bar().getClass().getSimpleName() shouldEqual "Foo$Bar"
所以,它可能是由编译器或其他类型级别的魔法宏库生成的,我认为这是某种装置。Scala编译器通常滥用$in类名,一些java代码可能会失败,当您创建静态对象时,它可能会生成一些额外的方法、包等
object Foo {
case class Bar()
}
val bar = new Foo.Bar().getClass().getSimpleName() shouldEqual "Foo$Bar"
所以,它可能是由编译器或其他类型级别的magic宏库生成的,我认为这是某种装置。Scala编译器通常滥用$,可能会生成一些额外的方法、包等。当您创建静态对象FooThis时,我认为这是某种装置。Scala编译器通常滥用$,并且在创建静态对象Foo时可能会生成一些额外的方法、包等