Avatar ·

如何从C++进程内部确定CPU和内存消耗?

大家好!我用C++编程大约一年了,遇到了一个让我困惑的问题。我需要我的程序(一个图像处理服务器)实时监控它消耗了多少内存和CPU。问题在于,我不知道如何从进程内部获取这些数据。 例如,我想在日志中输出类似这样的内容:“峰值内存消耗:150 MB,CPU负载:45%”。我尝试过使用像`sizeof()`这样的简单变量来获取对象大小,但这并不能反映真实情况——因为内存是在堆(heap)上分配的,再加上栈和系统资源的开销。CPU就更复杂了:我可以用`clock()`测量一段代码的执行时间,但这只是我线程的时间,而不是整个程序的时间,并且没有考虑I/O等待时间。 请问,是否有标准方法或库可以从进程内部获取这些指标?最好能跨平台,但至少支持Linux和Windows。