我的应用程序在后台为可能的请求缓冲数据。目前,我根据命令行参数限制缓冲区的大小,并在达到此限制时开始转储较少使用的数据。这并不理想,因为它依赖于用户指定性能关键参数。有没有更好的方法来处理这个问题?有没有办法在系统开始崩溃之前自动监控系统内存使用情况并转储最旧/最近最少使用的数据?
这里的一个复杂因素是我的应用程序在 Linux、OSX 和 Windows 上运行。但我会采取一种好方法,只在一个平台上做到这一点。
最佳答案
您最好的选择可能是监视您的应用程序工作集/驻留集大小,并在分配后它没有增长时尝试使用react。有关查找内容的一些提示:
- Windows:获取进程内存信息
- Linux:/proc/self/statm
- OS X:task_info()
Windows 也有 GlobalMemoryStatusEx,它给你一个很好的可用物理内存数字。
关于c++ - 当内存限制接近时转储缓冲数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238570/