首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++程序内存计算

C++程序内存计算
EN

Stack Overflow用户
提问于 2012-05-18 00:58:11
回答 2查看 2.8K关注 0票数 1

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

我是C++的初学者。对于我的问题,我看到了许多答案和不同的密码,但我都不明白。有什么简单的方法吗?

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

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-05-18 01:08:01

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

问题

简而言之:程序运行所需的时间是不可能事先知道的,除非您在一个相当受限和数学上严格的环境中操作,并且在提供某些保证的系统上对代码进行了适当的样式化:

系统

如果您有经验,您可以通过查看数据结构的大小和数据结构的大小来估计程序内存占用的大小。C++操作符sizeof可以帮助您确定任何单个对象消耗的实际字节数,但它不会告诉您用于幕后“簿记”的内存量。

但是再一次,您只需运行它并使用进程监视器来查看发生了什么。很难预测,你只是从经验上考察了实际发生的情况:

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

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

票数 2
EN

Stack Overflow用户

发布于 2012-05-18 01:17:49

如果您正在使用windows,则内置的Windows任务管理器将在"Processes“选项卡中显示您的内存使用情况。类似地,Mac有“活动监视器”,它将显示您的内存使用情况。程序中的数字将随着程序状态的变化而实时变化,并分配/释放内存。

至于测量执行时间,您可以使用计时器函数在执行之前和之后获取当前的系统时间,然后只需计算。

QueryPerformanceCounterQueryPerformanceFrequency用于windows,日复一日在mac/linux机器上。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10645425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档