我正在尝试制作一个在线C编译器
,以便多个用户可以在中央服务器上编译他们的代码。我可以判断他们的代码。
我想计算C程序的时间复杂度~CPU使用率和空间复杂度~内存使用率。我正在使用 Windows XP
和 cygwin gcc 4.5 编译器
。
作为一个博客,我试图通过 pview 获取进程的内存使用情况
c:\cygwin\bin\gcc-3.exe -Wall source.c -o a.exe 2>&1 | pv -o"%i\t%e\t%c2%%\t%m(K)\t%n" gcc-3.exe
在每种情况下,它都会返回gcc-3 的内存使用量为 3520 KB,尝试使用1000KB 大小或不使用大小,即简单的 printf 语句。 p>
你能帮我通过自动方式计算程序的内存使用量或空间复杂度吗?这没有必要使用上面的代码,这只是我在尝试。
欢迎提出建议和解答
最佳答案
在Cygwin下,我猜你可以使用getrusage 。它包含许多有关内存使用情况的信息。 This question提供有关其工作原理的更多信息和实际示例。
对于仅限 Windows 的程序,您有 GetProcessMemoryInfo 。请参阅this question有关其工作原理的更多信息。
关于c - 如何得到C程序的空间复杂度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9566874/