【发布时间】:2015-04-14 09:18:36
【问题描述】:
我有需要一次处理数千条记录的情况。有时,它可能有数百条记录,可能多达 30000 条记录。我正在考虑使用 scala 的并行集合。因此,为了了解其中的区别,我编写了一个简单的 pgm,如下所示:
object Test extends App{
val list = (1 to 100000).toList
Util.seqMap(list)
Util.parMap(list)
}
object Util{
def seqMap(list:List[Int]) = {
val start = System.currentTimeMillis
list.map(x => x + 1).toList.sum
val end = System.currentTimeMillis
println("time taken =" + (end - start))
end - start
}
def parMap(list:List[Int]) = {
val start = System.currentTimeMillis
list.par.map(x => x + 1).toList.sum
val end = System.currentTimeMillis
println("time taken=" + (end - start))
end - start
}
}
我预计并行运行会更快。但是,我得到的输出是
time taken =32
time taken=127
机器配置:
Intel i7 processor with 8 cores
16GB RAM
64bit Windows 8
我做错了什么?这不是并行映射的正确方案吗?
【问题讨论】:
标签: scala parallel-processing scala-collections