跟踪 Cython 封装的 C++ 中分配的内存使用情况

bac*_*eer 6 c++ python memory cython

我有一个 Python 程序,它调用一些 Cython 代码,而后者又包装一些原始 C++ 代码。我想看看基本 C++ 代码分配了多少内存。我已经尝试过 Python 的 memory_profiler 模块,但是,它似乎无法检测到 C++ 代码分配的任何内容。我的证据是我有一个 Cython 对象,该对象又存储 C++ 对象的实例。这个 C++ 对象肯定应该占用大量内存。在 python 中,当我创建 Cython 对象的实例(并且它存储 C++ 对象的实例)时,memory_profiler 不会检测到存储的任何额外内存(或至少检测到可忽略不计的量)。

有没有其他方法可以检测Python 已由基本C++ 对象分配了多少内存?或者是否有类似于 memory_profiler 的东西,但适用于 Cython?

Tim*_*ddy 1

如果您可以在 Linux 上运行程序,请使用https://github.com/vmware/chap(例如,从“summarizeused”开始)。