タグ

ブックマーク / tech-blog.tsukaby.com (1)

  • Scalaの構造的部分型の性能に注意

    今回はScalaの構造的部分型(structual subtyping)の話です。 構造的部分型を使うと、いちいちインタフェースであるtraitやclassを用意しなくて良いため、便利です。ですが、構造的部分型はコンパイルするとリフレクションに置き換えられるため、性能面では若干心配です。 今回は性能を検証してみようと思います。結論から言うと構造的部分型を利用するとメソッド呼び出しにかかるコストが41倍も増えてしまいます。(つまり沢山呼ばれる部分に使うと辛い) 構造的部分型のサンプル まずはおさらいと例です。構造的部分型はこんな感じですね。 import scala.language.reflectiveCalls object Main { def main(args: Array[String]): Unit = { val obj = new { def findAll():List[

  • 1