在运行时获取程序 RAM 使用情况(以 MB 为单位)(Windows 10)[重复]
Posted
技术标签:
【中文标题】在运行时获取程序 RAM 使用情况(以 MB 为单位)(Windows 10)[重复]【英文标题】:Get program RAM usage (in MB) at runtime (Windows 10) [duplicate] 【发布时间】:2021-03-04 00:25:52 【问题描述】:有没有一种简单的方法可以找出我的程序在不同操作(大型矩阵操作)后使用了多少 RAM(以 MB 为单位)?我正在使用 Windows 10。
【问题讨论】:
这是特定于操作系统的。 哦,对不起,我编辑了这个问题。 我认为您正在寻找分析。你应该有一个 Visual Studio 或者可以使用类似 Intel VTune 的东西。 【参考方案1】:C++ 标准(例如n3337)没有提到 RAM,所以您的问题是特定于操作系统的。此外,在大多数操作系统上,process 在virtual memory 中运行,并且两个不同的进程可能共享一些公共(虚拟或物理)内存。阅读good textbook on operating systems。
在执行期间,某些页面可能会被换出到磁盘上的交换区域。
因此,RAM 使用的概念是近似的,并且会随着时间而变化。阅读 thrashing 和 page faults 和 MMU。
但在 Linux 上,您可以使用 /proc/
文件系统。阅读proc(5)。您的程序将访问/proc/self/maps
对于 Windows,请阅读 WinAPI 文档。你可能想要virtual memory functions 和memory management functions。
您可以重新定义您的::operator new
和/或使用POCO 之类的库。有了 GPGPU 和OpenCL,事情变得更加复杂。一些编译器有 OpenACC 扩展来促进这些。
【讨论】:
是的,我发现它是特定于操作系统的并编辑了问题。我正在使用 Windows 10。以上是关于在运行时获取程序 RAM 使用情况(以 MB 为单位)(Windows 10)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
XAMPP 的 MYSQL 使用超过 400MB 的 RAM
如何分析 Windows 和 Linux 上的应用程序以获取 CPU 和 RAM 使用值? [关闭]
在某些手机上,android 应用程序使用的 RAM 超过了最大堆大小