1 val merged = (pa merge pb merge pc) //> merged : scalaz.stream.Process[scalaz.concurrent.Task,String] = Append(Hal 2 //| t(End),Vector(<function1>))
3 val par = merged.map {text => Task {vowlCount(text)} } 4 .map {task => Process.eva l(task)} //> par : scalaz.stream.Process[scalaz.concurrent.Task,scalaz.stream.Process[scalaz.concurrent.Task,Map[Char,Int]]] = Append(Halt(End),Vector(<function1>))
1 val cnt_start = System.currentTimeMillis //> cnt_start : Long = 1470204623562
2 val merged = (pa merge pb merge pc) //> merged : scalaz.stream.Process[scalaz.concurrent.Task,String] = Append(Halt(End),Vector(<function1>))
3 val par = merged.map {text => Task {vowlCount(text)} } 4 .map {task => Process.eva l(task)} //> par : scalaz.stream.Process[scalaz.concurrent.Task,scalaz.stream.Process[scalaz.concurrent.Task,Map[Char,Int]]] = Append(Halt(End),Vector(<function1>))
5 val resm = merge.mergeN(par).runFoldMap(identity).run 6 //> resm : Map[Char,Int] = Map(E -> 7330, U -> 1483, A -> 4531, I -> 4393, O -> 3748)
7 println(s"parallel calc vowl frequency in ${System.currentTimeMillis - cnt_start}ms") 8 //> parallel calc vowl frequency in 6922ms