c++ - 如何分析 C/C++ 应用程序中内存访问所花费的时间?

标签 c++ profiling perf intel-vtune callgrind

一个函数在应用程序中花费的总时间可以大致分为两个部分:

  1. 实际计算所花费的时间 (Tcomp)
  2. 花费在内存访问上的时间 (Tmem)

通常,分析器提供函数所花费总时间的估计值。是否可以根据上述两个组件(Tcomp 和 Tmem)估算所花费的时间?

最佳答案

Roofline 模型提出了算术强度 的概念:https://crd.lbl.gov/departments/computer-science/PAR/research/roofline/ .简单地说,它定义了每次内存访问执行的算术指令数。

计算算术强度通常是通过使用性能计数器来实现的。

关于c++ - 如何分析 C/C++ 应用程序中内存访问所花费的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40605806/

相关文章:

c++ - 无法将指针推回到 vector 中

C - 测量计算时间

winforms - 检测 Winforms 中的 gdi/用户处理程序泄漏

c++ - 如何使用 linux perf 获取 libc6 符号(例如 _int_malloc)的调用父项?

c++ - 我应该如何以及何时在 cuda API 中使用倾斜指针?

c++ - 通过函数结束程序?

performance - 光栅化绘制跨越多个帧的意义是什么

linux - 在没有 --privileged 的​​ docker 容器中使用 perf

intel - 我不明白 cachegrind 与 perf 工具之间的缓存未命中数

c++ - 检测 C++ 模板问题的工具