【发布时间】:2012-03-05 08:57:44
【问题描述】:
我想计算空间复杂度 ~ Windows 上 C 程序的内存使用量。 我想在不查看任务管理器的情况下完成这一切。 我发现link为代码计算空间:
#include <stdio.h>
int main(void) {
int x;
for(; scanf("%d",&x) > 0 && x != 42; printf("%d\n", x));
return 0;
}
1724 kB
如何计算te?
如何实现为一段代码计算这种空间复杂度度量的任何系统?
欢迎您的回答。
【问题讨论】:
-
什么是空间复杂度?和内存使用有关系吗?
-
空间需求(即内存使用)可以在运行时测量(例如,在 Linux 上使用
/proc/1234/maps表示进程 1234)。空间复杂度是一个完全不同的主题en.wikipedia.org/wiki/Computational_complexity_theory,并且在最一般的情况下非常难以精确计算(在一般或病态的情况下可能难以处理或无法确定)。 -
嗯,对你的问题(也是我使用的那个)最愚蠢的答案就是在任务管理器(或任何其他进程监视器)中检查进程的内存使用情况,如果通过 空间复杂度 你指的是内存使用情况。
-
@wallyk 实际上我想计算 C 程序运行所占用的内存。即如果它使用
int a,那么基本上是使用 4 bytes 等等。现在我想计算整个程序占用的内存。 -
你将如何处理
malloc-ated 堆数据,其大小取决于输入???