如何记录 Python 和 C++ 运行时的 RAM 使用情况?

如何记录 Python 和 C++ 运行时的 RAM 使用情况?

我想比较一下我编写的代码的 Python 实现和 C++ 实现的 RAM 消耗。本质上,我正在寻找如下命令:

<record ram> python3 main.py

<record this runtime ram> g++ main.cpp

是否可以在 Linux Ubuntu 中记录此类特定任务的 RAM?

感谢您的时间。

答案1

/prof/self/stat您可以在所有内存分配完成后阅读文本文件。其字段描述如下这里在linux中我们提到两种内存:

  • 驻留集大小 (RSS) 是分配给进程的内存量,在 RAM 中,
  • 虚拟内存大小 (VMZ) 是分配的内存量,包括换出的内存和共享库分配的内存。

stat文件中读取vsizerss。读完后,您可以kb使用 C++ 中的以下内容找到大小。

#include <unistd.h>
...

long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
vm_usage     = vsize / 1024.0;
resident_set = rss * page_size_kb;

在 Python 中您可以使用os.sysconf("SC_PAGE_SIZE")来获取PAGE_SIZE并执行等效计算。

您还可以探索瓦尔格林德以此目的。

相关内容