gpt4 book ai didi

c++ - 分析我的代码(开源)和第 3 方代码(闭源)的内存使用情况的最佳策略

转载 作者:可可西里 更新时间:2023-11-01 18:37:17 26 4
gpt4 key购买 nike

我很快将负责对用 C/C++ 编写并使用 CUDA 来利用 GPU 处理的代码进行适当的内存分析。

我最初的想法是创建宏和运算符重载,使我能够在源代码中跟踪对 malloc、free、delete 和 new 的调用。我将能够包含不同的 header ,并使用 __FILE__ 和 __LINE__ 宏将内存调用打印到日志文件。此类策略可在此处找到:http://www.almostinfinite.com/memtrack.html

在第 3 方库中的链接中跟踪该使用情况的最佳方法是什么?我假设我几乎只能跟踪函数调用前后的内存使用情况,对吗?在我的宏/过载场景中,我可以简单地跟踪请求的大小来计算需要多少内存。我怎么知道第 3 方库使用了多少?这也是我的理解,跟踪“免费”并不能真正让您了解代码在任何特定时间使用了多少,因为它不一定返回给操作系统。我感谢对此事的任何讨论。

我真的不想使用任何内存分析工具,如 Totalview 或 valgrind,因为它们通常会做很多其他事情(边界检查等),这似乎会使软件运行非常慢。另一个原因是我希望它在某种程度上是线程安全的——我相信该软件使用 MPI 来生成进程。我将尝试实时对此进行概要分析,以便我可以转储到日志文件或其他进程可以读取的内容,以便在软件运行时可视化内存使用情况。这也将主要在 linux 环境中运行。

谢谢

最佳答案

也许链接器选项 --wrap=symbol 可以帮助您。可以在这里找到非常好的例子: man ld

关于c++ - 分析我的代码(开源)和第 3 方代码(闭源)的内存使用情况的最佳策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192531/

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