【发布时间】:2014-08-28 08:09:02
【问题描述】:
用于查询运行程序的硬件或操作系统功能属性的标准 C++ 功能和实用程序有哪些?
例如,std::thread::hardware_concurrency() 为您提供机器支持的线程数。
但是如何检测计算机有多少 RAM,或者进程正在使用多少 RAM,或者在某个目录中有多少磁盘空间可用于写入,或者有多少 L2 缓存可用?
【问题讨论】:
-
标准库中没有这样的东西。我不确定拥有它是否有意义,因为它是特定于平台的东西 - 你怎么知道你的硬件甚至 有 东西,如 RAM、磁盘空间、目录或 L2 缓存?因此,您应该使用平台的 API 或提供跨平台包装器的第三方库。图书馆推荐请求在这里是题外话,所以你最好提出一个更具体的问题。
-
@JBentley:祝你好运在没有 RAM 的硬件上运行 C++ 程序!
-
@Close-Voters: 同样,不需要外部库或资源!我已经解决了这个问题。 @Nick-Thompson:OP 可能会添加评论或编辑问题,首先不同意我对问题的解释。
-
@Gabe
mmap和全息记忆? -
@Gabe:RAM 只是意味着“随机存取存储器”。原则上或实践中没有任何东西可以阻止 C++ 的实现仅使用顺序访问的内存。也许有问题的 C++ 程序正在运行磁带驱动器。
标签: c++ c++14 boost c++ c++11 computer-architecture c++14