C中每个函数的内存使用率?

C中每个函数的内存使用率?,c,performance-testing,benchmarking,C,Performance Testing,Benchmarking,如何测量单个C函数的内存使用情况 尤其是函数期间的峰值动态和/或堆栈分配,而不仅仅是从入口到出口的堆分配增量。内存使用情况与CPU使用情况不同,在函数的开始/结束处get\u CPU\u time会告诉您一些对大型函数有用的信息 在对一个函数的多次调用中,max和median或mean会很有趣,特别是如果我们可以看到它如何与函数arg进行缩放 执行过程中接触的总缓存占用空间也会很有趣。如果您要查找内存泄漏,可以使用Valgrind:查看Valgrind massif工具。这实际上不是堆栈溢出问题

如何测量单个C函数的内存使用情况

尤其是函数期间的峰值动态和/或堆栈分配,而不仅仅是从入口到出口的堆分配增量。内存使用情况与CPU使用情况不同,在函数的开始/结束处
get\u CPU\u time
会告诉您一些对大型函数有用的信息

在对一个函数的多次调用中,max和median或mean会很有趣,特别是如果我们可以看到它如何与函数arg进行缩放


执行过程中接触的总缓存占用空间也会很有趣。

如果您要查找内存泄漏,可以使用Valgrind:查看Valgrind massif工具。这实际上不是堆栈溢出问题,尽管它看起来很接近被重新打开。你似乎认为你试图测量的东西,想想这些词,更静态?仅仅改变一行代码,有时仅仅改变函数中的一个常量,就可以改变整个程序的大小和/或性能。由于许多原因,基准测试在很大程度上是虚假的,但仅仅是测量您想要测量的东西所需的代码量就会影响函数的大小或性能。valgrind或这种方法是查看堆栈使用情况的相对简单的方法,但是您必须正确使用该工具,并确保测量您认为正在测量的内容(而不是测量其他函数的使用情况,比如包装被测函数的测试代码)。显然,这些都不是C语言的问题,每个问题都严重依赖于系统和库。缓存使用率(如果可以测量的话)从芯片能提供什么开始,你会如何设计,为什么要设计?这是一种在芯片sim卡(而不是硅芯片sim卡)中可以做的事情,在芯片sim卡中,你可以添加任何你想要的监视器,并且有机会连接被测功能与操作系统以及系统中运行的其他代码之间的点。