c++ - 当内存限制接近时转储缓冲数据

标签 c++ windows linux macos memory-management

我的应用程序在后台为可能的请求缓冲数据。目前,我根据命令行参数限制缓冲区的大小,并在达到此限制时开始转储较少使用的数据。这并不理想,因为它依赖于用户指定性能关键参数。有没有更好的方法来处理这个问题?有没有办法在系统开始崩溃之前自动监控系统内存使用情况并转储最旧/最近最少使用的数据?

这里的一个复杂因素是我的应用程序在 Linux、OSX 和 Windows 上运行。但我会采取一种好方法,只在一个平台上做到这一点。

最佳答案

您最好的选择可能是监视您的应用程序工作集/驻留集大小,并在分配后它没有增长时尝试使用react。有关查找内容的一些提示:

  • Windows:获取进程内存信息
  • Linux:/proc/self/statm
  • OS X:task_info()

Windows 也有 GlobalMemoryStatusEx,它给你一个很好的可用物理内存数字。

关于c++ - 当内存限制接近时转储缓冲数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238570/

相关文章:

c++ - 使用 WIC 高效编码多个图像

c++ - 求解位方程

c++ - Apple C++ LLVM 编译器 4.x 和 UNICODE : when needed? UNICODE 是默认编译器字符集吗?使您的代码同时编译 ANSI 和 UNICODE 版本

c++ - 从 Qt 4.x (Ubuntu Linux) 迁移到 Qt 5.1 (Windows 7)

windows - 面向 Linux 的 Visual C++ 开发

c++ - 当有足够的可用 RAM 时使用交换。性能受影响

linux - 适用于 Linux 的 Xscale 编译器? (还有 Xscale 编译标志问题)

C++成员函数模板的隐式实例化

c++ - 使用 C++ 在 Windows 上获取 ssl 证书

linux - 想要在 tar 命令中排除文件夹