我有一个程序(尚未实现),该程序可以使用各种参数多次执行功能f
,并且应该为每次执行测量调用f
的最大内存消耗。即,我想知道在调用之前消耗了多少内存 f
,在执行 f
时最大内存 ,以及调用后 f
。测量的内存应包括两者堆栈和堆。
我能找到的大多数信息是关于在外部程序(例如valgrind(massif))的帮助下对整个程序进行内存分析(有时包括查看单个功能的使用可能性)。 这不是我想要的。 我需要能够从正在运行的程序中测量内存使用情况,尤其是在不同时间进行测量。
我发现Python的tracemalloc.get_traced_memory
函数似乎可以完成这项工作。但是我不确定Python是否是正确的编程语言,我宁愿选择一种类型化的编译语言。
从类型化的编译语言中,我对C和Go感到满意,但最近喜欢对Rust进行更深入的了解。这些语言中的任何一种都可以提供一种简便的方法来完成我想要的吗?
由于我无法真正找到满足自己需求的东西,因此希望StackOverflow的大量智能能为您提供帮助!