scala - 使用 hprof 分析 scala for 循环

标签 scala optimization hprof

大街上的消息是 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循环是瓶颈吗?

最佳答案

我认为您可能会更幸运地使用专门用于分析的工具,例如 yourkitvisualvm .

它们通常具有捕获 CPU 样本的接口(interface),然后深入查看哪些调用消耗了最多的 CPU 周期。

任何类型的瓶颈都会出现(比如占用 95% 的 CPU 时间),然后您可以向下钻取,直到看到您的(或库)的哪些方法在这些热点的调用堆栈上。然后您可以查看是否涉及 for 循环。

关于scala - 使用 hprof 分析 scala for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787605/

相关文章:

Scala 有无限但没有无穷小。为什么?

scala - scala 中反向排序的最佳方法是什么?

斯卡拉 : Generic method implicit parameter

scala - 从 sbt 运行 hprof

Scalatra 设置响应 header

mysql - 内连接查询

sql - 加速这个大 JOIN

c - 绕过 tcp/ip header 的原始套接字

android - Android Studio 中具有高内存分配的堆转储永远不会完成

java - 在 Sun Java 5 中运行的应用程序上使用 hprof