提问人:Ivan Perez 提问时间:11/15/2023 更新时间:11/15/2023 访问量:45
静态计算C程序的执行时间和内存消耗
Statically calculate execution time and memory consumption of C program
问:
我正在研究一种编译为 C99 的语言,没有 mallocs、没有递归、没有循环。所有内存都是预先分配的,所有函数都会终止(除非有除以零之类的异常)。
我的模块的入口点始终是相同的:一个函数。void step(void)
在这种情况下,有没有一种工具可以计算我的代码的最大内存使用量和最大执行时间?
答:
-1赞
Paul Floyd
11/15/2023
#1
valgrind --tool=massif --stacks=yes --pages-as-heap=yes
以上应分析所有内存使用情况。
或者,在运行可执行文件时,可以使用(或查看 /proc/PID/maps)。pmap -x PID
对于执行时间,我只使用/usr/bin/time -p exe_name
评论
0赞
Eric Postpischil
11/15/2023
该问题要求静态计算和最大值。使用 Valgrind 或运行程序不是静态的,仅涵盖所执行的情况,而不是所有可能输入的最大值。/usr/bin/time
0赞
Paul Floyd
11/15/2023
它被标记为 Valgrind 和 profiling,这使得它在我的书中模棱两可。
评论
size ./myprogram