Cost of implicit conversion from java to scala collections -


i'd know cost of implicit conversion java collection scala ones. in this doc there several implicit two-way conversions said "converting source type target type , again return original source object".

i conclude cost should minor (wrapping), still how it?

i ask question because use java sets in scala code, implicitly converted scala set import asscalaset (i need in places). however, might consequent overhead little accessors such size()

does know?

i decided answer question practical point of view. used following simple jmh benchmarks test operations per second original scala collection , converted 1 (using implicit conversion).

please find below code of benchmark:

import org.openjdk.jmh.annotations._  import scala.collection.javaconversions._  @state(scope.thread) class wrapperbenchmark {    val unwrappedcollection = (1 100).toset   val wrappedcollection: java.util.set[int] = (1 100).toset[int]    @benchmark   def measureunwrapped: int = unwrappedcollection.size    @benchmark   def measurewrapped: int = wrappedcollection.size() } 

i used sbt , sbt-jmh plugin running. please find results below:

[info] benchmark                           mode  cnt          score         error  units [info] wrapperbenchmark.measureunwrapped  thrpt  200  353214968.844 ± 1534779.932  ops/s [info] wrapperbenchmark.measurewrapped    thrpt  200  284669396.241 ± 4223983.126  ops/s 

so according results, there overhead indeed. try continue research providing reason why in later update question.

please let me know if want me share complete sbt project future research.


Comments