多语言展示
当前在线:1432今日阅读:84今日分享:32

C 怎么监控程序运行内存不足

本经验文章主要介绍一下,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

感谢阅读本经验,祝您生活愉快

推荐信息