本经验文章主要介绍一下,C怎么监控程序运行内存不足的示例代码,以及实现方式和一些简单的注意事项
工具/原料
1
vs2013
2
电脑
方法/步骤
1
首先使用vs2013创建一个示例C工程,如下图所示,这里以windows为例子简单介绍获取空闲内存的方式来实现
2
如下图所示,这是一个新建的空白工程,没有任何示例代码,但是它是一个完整的工程,是可以正常编译通过的
3
接下来,我们来介绍一个可以实现获取内存信息的函数,这个函数叫作GlobalMemoryStatusEx它是一个windows的系统函数,用来获取系统的物理内存和虚拟内存的接口
4
然后,我们可以从msdn上可以看到,这个函数使用的时候需要注意些什么,系统要满足那些条件等
5
然后我们来检查,这个系统接口会返回给我们的是什么样的数据,我们继续查看这个结构体的变量代表什么意思,如下图所示,我们可以看到总内存和空闲内存两个参数,这正是我们想要的
6
然后,我们写上实现的代码,来获取系统内存的当前信息,如下图所示,我们对比任务管理器的可用内存,发现程序获取的值是一样的,所以通过这种方式可以检测程序内存不足的功能参考代码如下:MEMORYSTATUSEX Meminfo; double dSize; memset(&Meminfo, 0, sizeof(Meminfo)); Meminfo.dwLength = sizeof(Meminfo); GlobalMemoryStatusEx(&Meminfo); dSize = (double)Meminfo.ullTotalPhys - Meminfo.ullAvailPhys; dSize /= 1024.0; dSize /= 1024.0; dSize += 0.5;
注意事项
1
仅供个人学习参考
2
感谢阅读本经验,祝您生活愉快
上一篇:怎么鉴定内存卡