我想比较一下我编写的代码的 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
文件中读取vsize
并rss
。读完后,您可以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
并执行等效计算。
您还可以探索瓦尔格林德以此目的。