I\'m running this scala code on a 32-bit quad-core Core2 system:
def job(i:Int,s:Int):Long = {
val r=(i to 500000000 by s).map(_.toLong).foldLeft(0L)(_+_)
pr
Try
(i to 500000000 by s).view.map(_.toLong).foldLeft(0L)(_+_)
The application of view
is supposed to (as I understood id) to avoid repeated iteration and object creation by providing simple wrappers.
Note also that you can use reduceLeft(_+_)
instead of fold.
My guess is that the garbage collector is doing more work than the addition itself. So you're limited by what the garbage collector can manage. Try running the test again with something that doesn't create any objects (e.g. use a while loop instead of the range/map/fold). You can also play with the parallel GC options if your real application will hit the GC this heavily.