文章 2023-07-11 来自:开发者社区

译 | Profiling Go Programs(四)

我们现在可以轻松地遵循粗箭头,看看 FindLoops 是否触发了大部分垃圾收集。 如果我们列出 FindLoops 们可以看到,大部分在开始时是正确的:(pprof) list FindLoops ... . . 270: func FindLoops(cfgraph *CFG, lsgraph *LSG) { . . 271: if cfg...

文章 2023-07-11 来自:开发者社区

译 | Profiling Go Programs(三)

要查找内存分配,我们可以列出这些函数。(pprof) list FindLoops Total: 82.4 MB ROUTINE ====================== main.FindLoops in /home/rsc/g/benchgraffiti/havlak/havlak3.go 56.3 56.3 Total MB (flat / cumulative) ... ...

译 | Profiling Go Programs(三)
文章 2023-07-11 来自:开发者社区

译 | Profiling Go Programs(二)

我们可以一目了然看到该程序将大部分时间花在哈希操作上,这与使用Go的 map 值相对应。 我们让 web 只使用包含特定函数的样本,例如 runtime.mapaccess1_fast64 ,可以清除图中的一些噪音:(pprof) web mapaccess1如果斜视,我们可以看到 main.FindLoops 和 main.DFS 对 runtime.mapaccess1_fast64 的调用....

译 | Profiling Go Programs(二)
文章 2023-07-11 来自:开发者社区

译 | Profiling Go Programs(一)

背景在Scala Days 2011,Robert Hundt 发表了一篇名为 Loop Recognition in C++/Java/Go/Scala 的论文。 该论文实现了一种特定的循环查找算法,例如您可以在C++,Go,Java,Scala编译器的流分析传递中使用,然后使用这些程序得到这些语言中典型性能问题的结论。该论文中的Go程序运行速度非常慢,使它成为演示的绝佳机会:如何使用Go的分....

译 | Profiling Go Programs(一)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等