大街上的消息是 scala 中的 for 循环比 while 循环慢。
慢的:
for (i <- 0 until 10000) {
f(i)
}
快速地:
var i = 0
while (i < 10000) {
f(i)
i += 1
}
如何使用 hprof 来判断 for 循环是否是我代码中的瓶颈?我正在使用
-agentlib:hprof=cpu=samples
分析我的代码,“CPU SAMPLES”部分中的方法是什么?我想知道我的优化工作应该集中在哪里。 for循环是瓶颈吗?
最佳答案
我认为您可能会更幸运地使用专门用于分析的工具,例如 yourkit或 visualvm .
它们通常具有捕获 CPU 样本的接口(interface),然后深入查看哪些调用消耗了最多的 CPU 周期。
任何类型的瓶颈都会出现(比如占用 95% 的 CPU 时间),然后您可以向下钻取,直到看到您的(或库)的哪些方法在这些热点的调用堆栈上。然后您可以查看是否涉及 for 循环。
关于scala - 使用 hprof 分析 scala for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787605/