在linux写的C语言程序,使用top查看内存的使用率不断的增加,直到程序死机

在linux写的C语言程序,使用top查看内存的使用率不断的增加,直到程序死机。然后写了一个测试程序,只是简单的while(1)死循环,用top查看,内存也是再不断的增加,不知道是什么问题。还有就是关闭程序之后,占用的内存也不会被释放,重新打开程序之后,内存在关闭的基础上重新增加。这个是什么问题。请高手指教。

根据你的描述,我判断很有可能是你的程序中有死循环造成的,是不是内存泄露还需要进一步判断。 linux的内存管理和windows不同,linux的内存分配原则是优先使用物理内存,只有在物理内存满足不了需要时,才进行物理内存和虚拟内存的交换;windows则是根据一定的比例进行虚拟内存和物理内存的交换;因此,linux系统的物理内存使用量是不断增减,指导95%以上才会稳定,其实是linux为提高系统性内进行的物理内存使用优化,这样能够提高物理内存使用率,提高性能。 如果你的进程关闭,linux系统也不会马上释放内存,等到其他进程请求内存而且物理内存不足时才去释放。 这里linux的内存管理机制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-24

在linux写的C语言程序,使用top查看内存的使用率不断的增加,直到程序死 ...
根据你的描述,我判断很有可能是你的程序中有死循环造成的,是不是内存泄露还需要进一步判断。 linux的内存管理和windows不同,linux的内存分配原则是优先使用物理内存,只有在物理内存满足不了需要时,才进行物理内存和虚拟内存的交换;windows则是根据一定的比例进行虚拟内存和物理内存的交换;因此,linux系...

在linux下,如果用C语言程序获取网络利用那个率,类似于window系统任务管 ...
有个抓包库叫libpcap的,你把网卡上每个包的大小都记下来,除以单位时间就能得到实时网速了,前提是有root权限。更好的解决方法也许能从tcpdump的源程序中得到,这个我不太了解。

使用C语言编写程序在Linux环境中运行c在linux上运行
首先,要在Linux环境中运行C语言程序,必须先安装有C语言编译器,最好的选择是GCC,GCC是一款强大的、免费的、多功能的C语言编译器。如果您已经安装了GCC,可以使用以下命令来检测GCC是否已安装:`gcc -v`如果返回信息说明GCC已安装,则可以使用GCC编译C语言程序。编译C语言程序需要使用gcc命令,编写程序...

在linux环境下,我们使用C语言编程,如何正确计算CPU使用率?(不限\/pro...
建议:要用C语言来编程实现的话,提取各项数据会比较复杂,而用shell脚本来提取的话,会简单的多;所以你可以尝试用脚本来提取数据并计算出CPU使用率,然后在C程序中用system( )函数来调用这个脚本。

linux程序命令行设置cpu核数linux程序命令
对于一个用Linux开发C程序的人来说,这个命令就非常重要了,它用于把C语言的源程序文件,编译成可执行程序。20、time命令 该命令用于测算一个命令(即程序)的执行时间。linux启动命令?一:启动Nginx服务--在sbin目录下 启动命令:.\/nginx 关闭命令:.\/nginx-sstop和.\/nginx-squit 刷新配置文件:.\/...

写一个linux下写个关于c语言的双守护进程,就是监视一个进程,当其死掉...
监控进程monitor.c:include<unistd.h> include<signal.h> include<stdio.h> include<stdlib.h> include<sys\/param.h> include<sys\/types.h> include<sys\/stat.h> include include<sys\/wait.h> include<fcntl.h> include<limits.h> define BUFSZ 150 void init_daemon(){ int pid;int i;pid...

linux下,编写一个c语言程序实现...(详细见正文)!急!
程序功能:查询IP 使用方法:将IP库保存为c:\\data.txt,将要查询的IP保存为c:\\ip.txt;编译好本程序后,运行后产生c:\\result.txt结果文件 程序BUG:data文件最后需要以两个换行结束 \/ include <stdio.h> include <string.h> include <windows.h> include <stdlib.h> define TOTAL_INFO 100 exte...

内存泄漏检测组件的分析与实现(linux c)-mtrace工具使用
具体实现内存泄漏检测组件时,可以使用memleak.c文件并生成memleak可执行文件。通过实验,我们能够验证内存泄漏检测功能,并根据结果定位到问题代码行。对于mtrace工具的使用,通过设置MALLOC_TRACE环境变量和生成日志文件,能够记录内存分配与释放的详细情况,辅助分析内存泄漏问题。总的来说,实现内存泄漏检测组件...

如何在Linux上运行C程序linux如何运行c程序
gcc -o progname progname.c 运行程序命令如下:.\/progname 用这两条命令,我们可以在linux上运行C程序。在程序开发过程中,需要定义一些头文件,头文件可以帮助我们文件调用,这里我们可以 #include 这样把标准库文件调用进来,然后就可以使用里面的函数了。最后,可以使用标准输入输出函数,诸如printf,scanf...

Linux中进程管理工具htop的安装与其命令使用教程
用户一般可以在top无法提供详尽系统信息的情况下选择安装并使用htop。比如,在查找应用程序的内存泄漏问题时。与top相比,htop提供更方便、光标控制的界面来杀死进程。htop用C语言编写,采用了ncurses库。htop的名称源于其作者的名字。2. htop安装 代码如下:yum -y install ncurses-devel #htop依赖ncurses wg...

相似回答
大家正在搜