Scala 2.10和2.9.2的性能比较

开发 后端
我已经阅读了 Scala 2.10.0-RC3 的一些新特性,该版本最值得关注的就是性能方面的提升,我很好奇这个提升的幅度到底有多大,于是我做了一个基准测试。

我已经阅读了 Scala 2.10.0-RC3 的一些新特性,该版本最值得关注的就是性能方面的提升,我很好奇这个提升的幅度到底有多大,于是我做了一个基准测试。下面是我的两个测试用的代码:

Eratosthenes 筛选

  1. def eratosthenes(toNum: Int) = {  
  2.   def sieveHelp(r: IndexedSeq[Int]): Stream[Int] = {  
  3.     if(r.isEmpty)  
  4.       Stream.empty  
  5.     else 
  6.       r.head #:: sieveHelp(r.tail.filterNot(_ % r.head == 0))  
  7.   }  
  8.   sieveHelp(2 +: (3 to toNum by 2))  

Sundaram 筛选

  1. def sundaram(toNum: Int) = {  
  2.   val n = (toNum - 2)/2 
  3.   val nonPrimes = for (i <- 1 to n; j <- i to (n - i) / (2 * i + 1)) yield i+j+(2*i*j)  
  4.   2 +:((1 to n) diff nonPrimes map (2*_+1))  

其中 Sundaram 筛选方法运行 120 次,查找小于 300 万的所有素数。而 Eratosthenes 刷选方法运行 60 次,查找小于 7万5 的所有素数,结果如下:

 

 

从上图你可以看出,Sundaram 筛选方面的性能提升是微不足道的。而 Eratosthenes 筛选方法的性能提升达到了 2 倍之多。因为我非常期待 Scala 2.10 正式版的发布。

我的测试源码在这里: https://github.com/markehammons/2.10.0-RC3-Benchmark

原文链接:markehammons

译文链接:http://www.oschina.net/question/12_81799

责任编辑:林师授 来源: OsChina
相关推荐

2015-02-05 09:25:51

HTTPSSPDYHTTP2

2020-07-27 08:24:42

编程语言C语言Java

2014-08-20 09:49:50

虚拟机Linux Conta

2011-04-15 10:26:38

JavaMVC

2013-12-16 10:20:48

MySQL数据库

2011-04-28 09:49:56

SQLwith子查询

2009-05-25 08:39:08

iPhone苹果移动OS

2011-05-18 14:52:04

XML

2009-07-01 18:12:18

JSP的优势性能比较

2009-12-16 14:10:22

路由技术性能比较

2011-07-06 14:18:40

Percona SerMySQL

2010-03-10 16:35:23

Python编程语言

2023-11-20 10:34:09

语言

2009-12-16 14:10:12

路由技术性能比较

2010-12-27 16:01:45

jQuery选择器

2009-12-04 19:28:25

FreeBSD 8.0Ubuntu 9.10性能比较

2023-11-19 21:17:58

GoRust

2021-09-16 10:25:38

Java 17开发者回收器

2017-12-14 10:16:01

CaddySSLDockerNginx

2013-04-03 10:04:36

MySQL 5.6
点赞
收藏

51CTO技术栈公众号