由于之前没有做过类似的问题(纯属小白了,惨遭鄙视....),所以就想着通过自己去看代码,查找里面涉及到使用动态内存的代码段去定位问题(现在想想,真是太幼稚了,大家见笑了...),但是自己还是去通过对源代码跟踪、分析,主要是对动态分配的内存(如malloc函数分配的内存)、一些文件描述符等进行跟踪,分析在程序逻辑中对动态分配的内存有没有手动进行释放,打开的文件描述符有没有关闭等这些代码一点点的去分析,当然这也是熟悉代码,了解的一个过程。
2、利用memwatch内存检测工具对程序进行内存分析
Memwatch是一款C语言的内存检测工具。memwatch使用它自己定义的功能函数取代所有在你的程序中用ANSI C定义的内存分配函数,memwatch的内存分配函数包含了所有的分配记录信息。memwatch功能默认不是开启的,除非定义了MEMWATCH,否则在代码中不会跟踪相关的内存使用情况。memwatch通常将它的数据写入到memwatch.log文件中,它也可以被重定向.更多Linux *** 作知识,可以百度《Linux就该这么学》。
在终端中运行fdisk -l
查看哪个分区有空,然后运行
sudo mkswap /dev/sda 添加交换分区,
sudo swapon /dev/sda启用分区,
sudo /dev/sda swap swap defaults 0 0写入启动,
如果没有空的分区,那就在较大的分区中设置交换文件
sudo dd if=/dev/zero of=/swapfile1 bs=1024k count=512 创建大小为512M的交换文件(512可以自己定义),
sudo swapon /swapfile1 启用交换文件
sudo /swapfile1 swap swap defaults 0 0写入启动
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)