假设我们有一个在单个线程上执行的程序C++。
分配的内存?
如何检查这个程序分配的内存量,例如,使用一个函数,该函数在给定的执行实例中返回分配给这个程序(单线程)程序的字节数。
.
.
.
std::cout << memoryallocated() << endl;
.
.时间过去了?
计算执行一组指令的时间(例如毫秒)的最精确方法是什么?
发布于 2015-12-02 22:10:44
没有标准的C++接口(或C接口)来了解应用程序的时间或内存使用情况。可能会有一个特定操作系统的接口来了解内存的使用情况--例如,在Linux中,您可以读取/proc/$PID/status并查找VmSize来找出当前进程的总体大小。其他操作系统有各种其他技术。
标准C运行时中通常有一个clock函数,它会给出相当精确的计时--但所测量的时间取决于系统--有时是CPU时间(例如Linux和其他Unix变体),有时是经过时间(例如Windows)。
有各种各样的C++11时间保持功能,可以给你墙时间。std::chrono功能将在这方面有所帮助。对于硬脑膜来说,high_resolution_clock是非常有用的。
此steady_clock引用提供了如何使用chrono功能的示例。
当然,如果您只想看到Unix/Linux进程的总内存,就可以使用/usr/bin/time -v some-prog --它将显示各种统计数据,包括内存使用情况、CPU时间、CPU时间百分比等等。
https://stackoverflow.com/questions/34053705
复制相似问题