我已经阅读了 Scala RC 的一些新特性该版本最值得关注的就是性能方面的提升我很好奇这个提升的幅度到底有多大于是我做了一个基准测试下面是我的两个测试用的代码 Eratosthenes 筛选 deferatosthenes(toNum:Int)={ defsieveHelp(r:IndexedSeq[Int]):Stream[Int]={ if(risEmpty) Streamempty else rhead#::sieveHelp(rtailfilterNot(_%rhead==)) } sieveHelp(+:(totoNumby)) } Sundaram 筛选 defsundaram(toNum:Int)={ valn=(toNum)/ valnonPrimes=for(i<ton;j<ito(ni)/(*i+))yieldi+j+(*i*j) +:((ton)diffnonPrimesmap(*_+)) } 其中 Sundaram 筛选方法运行 次查找小于 万的所有素数而 Eratosthenes 刷选方法运行 次查找小于 万 的所有素数结果如下 从上图你可以看出Sundaram 筛选方面的性能提升是微不足道的而 Eratosthenes 筛选方法的性能提升达到了 倍之多因为我非常期待 Scala 正式版的发布 |