gpt4 book ai didi

linux - 用于识别最易受内存性能影响的应用数据/代码的工具

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:56:15 24 4
gpt4 key购买 nike

上下文:
-- 运行 Linux 的嵌入式平台带有一些静态 RAM,据说比其余 RAM(动态)快 3 倍。这种快速存储器的容量为512kB,正式名称为eSRAM。 (细节对这篇文章不重要:伽利略板,关于 eSRAM 和相关内核 API 的信息:https://communities.intel.com/servlet/JiveServlet/previewBody/22488-102-1-26046/Quark_SWDevManLx_330235_001.pdf)
-- 在内核的一些支持下,应用程序可以使用 eSRAM——一个简单的驱动程序,代表它分配内核内存,用 eSRAM 覆盖内存(这是在物理空间中完成的)并将其映射到应用程序的虚拟内存空间.这已经过测试并确认可以按预期工作。

问题:
确定应用程序数据(可能还有代码)的哪些部分映射到 eSRAM 以实现最佳性能增益。需要合适的分析工具。

经过一番搜索后,我不确定是否有任何现有工具真正适合这项任务。目前我最好的选择是开发一个专门的 Valgrind 工具。但也许生态系统中已经有一些东西可以开始了。任何建议/信息都是受欢迎的,例如,一种工具是部分适合等。

附言
完整的分析可能应该考虑很多因素,例如:
-- 内存访问模式(缓存性能)
-- 随时间变化(可以考虑 eSRAM 分页)
...

最佳答案

我看过 Valgrind Cachegrind。它可以收集有关数据缓存读取和数据缓存写入的数据。 cg_annotate 可以为您的程序报告逐行计数。在您的程序中找到导致大多数数据缓存操作的变量,并以这种方式识别可以从移动到快速内存中获益最多的数据,这对您有用吗? http://valgrind.org/docs/manual/cg-manual.html#cg-manual.line-by-line

您可能对 D 缓存读取 (Dr) 和 D 缓存写入 (Dw) 甚至 (Dr+Dw) 感兴趣。通过这种方式,您可以在代码中找到一个执行最多 (Dr+Dw) 的位置,并尝试在您的快速内存中移动这个位置。

关于linux - 用于识别最易受内存性能影响的应用数据/代码的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25780834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com