anu*_*ain 5 c++ linux memory winapi
我将如何找出RAM的数量以及有关系统的详细信息,例如CPU类型,速度,可用的物理内存量。RAM中的堆栈和堆内存量,正在运行的进程数。
还有如何确定是否有任何方法可以确定计算机执行指令所需的时间,从内存中获取一个单词(有或没有缓存未命中),从磁盘读取连续的单词以及寻找磁盘上的新位置。
编辑:我想使用g ++编译器在我的Linux系统上完成此操作。是否有任何inbulit函数。还告诉我在Windows系统上是否可能发生这种情况。
当我学习c ++的一些内存管理知识时,出于好奇,我才刚提出这个问题。请逐步引导我进行操作,否则可能会对在线教程有所帮助。谢谢。
对于 Linux 和 GCC,您可以使用标头sysconf
中包含的函数<unistd.h>
。
您可以传递各种参数来获取硬件信息。例如,要获取计算机中的物理 RAM 量,您需要执行以下操作:
sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGESIZE);
Run Code Online (Sandbox Code Playgroud)
请参阅手册页了解所有可能的用法。
getrlimit
您可以使用系统调用以及 RLIMIT_STACK 参数(包括使用标头)来获取进程的最大堆栈大小<sys/resource.h>
。
要了解当前计算机上正在运行的进程数,您可以检查该/proc
目录。每个正在运行的进程都表示为该目录中的一个文件,该文件以其进程 ID 号命名。