Word on the street is that for loops in scala are slower than while loops.
Slow:
for (i <- 0 until 10000) {
f(i)
}
Fast:
var i = 0
while (i < 10000) {
f(i)
i += 1
}
How do I use hprof to tell whether the for loops are the bottleneck in my code? I'm profiling my code using -agentlib:hprof=cpu=samples
, what would the method be in the "CPU SAMPLES" section?
I'd like to know where to focus my optimization efforts. Are for loops the bottleneck?
I think you may have more luck with tools specialized with profiling such as yourkit or visualvm.
They usually have interface to capture CPU sample and then drill down to see what calls consumed most CPU cycles.
Bottlenecks of any kind would show up (like taking 95% of the CPU time) and then you could drill down until you see what methods of yours (or the library) is on the call stack for those hot spots. Then you can see if for loops are involved.