new Objectはスケールするか?
$ cat a.scala import scala.concurrent.ops._ import java.lang.System.{currentTimeMillis => curt} def foo(n: Int) = { (0 until n).foreach { _ => new Object } } def bench(weight: Int, ncore: Int) { val s = curt (0 until ncore).map(_ => future(foo(weight))).toList.foreach(_()) val e = curt println("%d: %d ms".format(ncore, e - s)) } (0 to 3).foreach { _ => bench(40000000, 1) bench(20000000, 2) bench(10000000, 4) } $ scala a.scala 1: 868 ms 2: 598 ms 4: 594 ms 1: 783 ms 2: 587 ms 4: 596 ms 1: 784 ms 2: 587 ms 4: 593 ms 1: 785 ms 2: 590 ms 4: 589 ms
CoreDuoで実行したので4はあまり意味がないです。