可视化C++程序内存计算



如何计算某个程序在运行时所花费的时间和使用的内存?

我是C++初学者。我看过很多答案和我的问题的不同代码,但所有这些我都不明白。有没有简单的方法可以做到这一点?

如果有更复杂的方法,请包括解释。

谢谢。

现在(也不会有(一个通用的工具可以告诉你一个任意程序在不实际运行它的情况下需要多长时间,这在一般情况下可能需要很长时间。 这是一个有趣的CS概念,值得思考:

http://en.wikipedia.org/wiki/Halting_problem

简而言之:你的程序运行所需的时间是无法提前知道的,除非你在一个相当受限和数学上严格的环境中运行,并且在提供某些保证的系统上适当地风格化了你的代码:

http://en.wikipedia.org/wiki/Real-time_operating_system

如果你有经验,你可以通过查看数据结构的大小和数量来估计程序内存占用的规模。 C++运算符sizeof可以帮助您确定任何单个对象消耗的具体字节数,尽管它不会告诉您用于幕后"簿记"的内存量的任何信息。

但再一次,您通常只需要运行它并使用进程监视器来查看会发生什么。 很难预测,你只是凭经验检查实践中发生的事情:

跟踪每个进程的 CPU 和内存使用情况 (Windows(

在 Linux 中监视程序的内存使用情况

如果您

使用的是Windows,内置的Windows任务管理器将在"进程"选项卡中显示您的内存使用情况。同样,Mac OSX具有"活动监视器",它将显示您的内存使用情况。程序中的数字将随着程序更改状态以及分配/解除分配内存而实时更改。

至于测量执行时间,

您可以使用计时器函数来获取执行前后的当前系统时间,然后进行数学运算。

QueryPerformanceCounter 和 QueryPerformanceFrequency for windows,以及 mac/linux 机器上的 gettimeofday。

如果您需要有关应用程序的更具体的性能相关信息,AMD CodeAnalyst 等性能分析应用程序可以帮助您找出主要瓶颈所在。

最新更新