C/C++ 程序的内存访问分析

问题描述 投票:0回答:1

我正在探索 C/C++ 程序的内存访问分析。 我想知道什么时候开始内存访问,执行内存访问需要多长时间,以及访问的内存类型(L1/L2/L3/DRAM)。

我使用了一个名为 lmbench 的工具来执行内存访问延迟分析。 lmbench 中的“lat_mem_rd”基准测量顺序内存读取的延迟。该基准测试对指定内存块执行一系列顺序内存读取,并报告每次读取的平均延迟。延迟以纳秒为单位测量,值越低表示内存访问性能越好。使用此工具,我可以获得访问 L1、L2、L3、DRAM 内存的延迟。

我了解到CPU架构编译器优化在程序优化中起着关键作用,这可能会影响整体内存访问延迟。操作系统上下文切换也会增加内存访问延迟。

是否有可用的分析工具或已知的经过验证的技术来获取接近精确的内存访问分析信息?提前致谢。

c++ c performance memory memory-management
1个回答
0
投票
  • Intel VTune Amplifier:这是一个性能分析工具,可以分析 C/C++ 程序在 Intel 处理器上的内存访问行为。

  • AMD CodeXL:这是一个性能分析工具,可以分析在 AMD 处理器上运行的 C/C++ 程序。

  • HPCToolkit:这是一个开源性能分析工具,可以分析各种架构上的 C/C++ 程序,包括 x86、ARM 和 PowerPC。

您还可以使用大多数现代 CPU 上可用的硬件性能计数器来深入了解内存访问性能。这些性能计数器可以跟踪内存访问事件,例如缓存命中/未命中、内存带宽使用情况等。

© www.soinside.com 2019 - 2024. All rights reserved.