当前位置:  技术问答>linux和unix

为什么不能分配内存

    来源: 互联网  发布时间:2016-11-15

    本文导语:  运行一段时间perror报错如下: :Cannot allocate memory TOP此时打印如下: Mem: 261060K used, 140316K free, 0K shrd, 3072K buff, 36812K cached CPU:  70% usr   0% sys   0% nice  10% idle   0% io  20% irq   0% softirq Load average: 0...

运行一段时间perror报错如下:
:Cannot allocate memory

TOP此时打印如下:
Mem: 261060K used, 140316K free, 0K shrd, 3072K buff, 36812K cached
CPU:  70% usr   0% sys   0% nice  10% idle   0% io  20% irq   0% softirq
Load average: 0.62 0.97 1.14
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
25927     1 root     R     339m  86%  80% ./app.bin

# ulimit -a
time(seconds)        unlimited
file(blocks)         unlimited
data(kb)             unlimited
stack(kb)            1024
coredump(blocks)     0
memory(kb)           unlimited
locked memory(kb)    32
process              3200
nofiles              1024
vmemory(kb)          unlimited
locks                unlimited


此时手工运行其他程序没有问题。
为什么就不能分配内存了?
谢谢。

|


程序很大的话,有没有频繁地释放内存再申请内存?
这样可能会造成大量的内存碎片,有可能会导致内存不足。

如果这样的话建议自己写一个内存池来管理内存。

|

你在系统中看到的资源是你机器的总资源,你程序内可用的内存是3G,你分配没有回收的时候会造成你程序可用的内存不断减少,而你没有回收的内存会被移动到缓冲区,也许只是被标记已分配,并没有真正占用物理内存。
你另外启动一个进程系统又给了它另外3G的可用空间当然没有问题了。
程序越大越需要注意内存的使用,否则很容易造成内存泄漏,最后你的程序就无内存可用,只能关掉重来。

|
因为你之前申请的没释放?

|
看一下错误号嘛

    
 
 

您可能感兴趣的文章:

  • 刚安装好redhat 9.0,怎么不能执行ipconfig命令呀?我怎么才能找到动态分配的IP地址呀???
  • linux服务器被电信重新分配了IP,结果proftp不能启动了。
  • 能不能给指针数组动态分配内存
  • 用Druid分区时,出现“不能划拨所分配的分区”这样的问题,请问怎么解决?
  • 在我的java程序中,我从数据库中得到一批数据,不能确定是多少个,我要把它保存到我的java数组中,可是怎样才能向C++中的数组一样可以自由分配空间,在java中我必需预先指定大小,不会一定要用java中的那个可改变数组大小的类吧?
  • 内核不能使用虚拟内存?
  • 32位地址空间指的是虚拟内存的寻址范围,但是为什么要求物理内存大小不能大于4G?
  • Linux 安装时SWAP与内存不能相差很大吗?
  • C++里能不能在指定的一块内存中创建对象的实例?
  • resin服务器,为什么不能将session的bean占用的内存释放调呀?
  • 在linux下能不能创建一个堆,然后给堆指定一块共享内存,然后各个程序用此堆来new对象来共享?
  • P133, 2G硬盘, 64M内存, 14''显示器, S3 64V+显卡(1M显存)能不能装Redhat Linux? 只是为了熟悉一下.
  • 红旗LINUX SERVER4.0 不能识别超过4G内存
  • ioremap内存映射 始终不能访问内存 求解
  • 在VC6中,对链表的操作!编译没问题,但在运行的时候说“内存不能写”,谢谢
  • 共享内存问题,只能得到int值,不能得到char*的值?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请加薪时绝对不能说的4件事!
  • 在LINUX下不能拷影碟还是不能拷.dat文件??
  • sqlserver登陆后报不能为空不能为null的错误
  • 修改/ETC/FSTAB后,系统不能进入,/文件系统只读,不能改,我该怎么办,分不是问题
  • 在Linux下访问Windows的NTFS分区为什么不能写,也不能删里面的东西?
  • EJB QL都支持什么函数啊?能不能支持trim函数呢?如果不能,应该怎么实现这样的功能呢?
  • 如何配置wu-ftp不能匿名登陆同时用户上传后的文件不能删除和修改?
  • 中文问题:我使用的是MEPIS Linux,系统不能显示中文,我能不能把Redhat中的中文字体移植到这个系统中?
  • 救急!Linux下WAS4.0不能启动(DB2 数据库也不能启动)
  • 高难Unix问题,为什么不能通过中国网通的宽带联接(ADSL)不能看到我的网站?
  • 在linux下面使用相关的硬件,为何不能,系统不能检测到modem,网卡,以及其他,请教
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关..
  • 在静态上下文中不能引用非静态方法test(),天啊,为什么我的main()不能调用任何其它函数?
  • 愁死了,一开始使用redhat7.3,安装时定制为服务器,squid不能使用,改用redhat9.0,安装时选择服务器安装选项,squid还是不能用
  • Redhat9为什么不能安装?是因为不能识别串口硬盘吗?
  • 为什么我安装完系统后不能输入密码,不能进系统
  • 装完fc1后,设置后可以上网了,网页,链接都可以,可是却不能收邮件,不能登陆,为什么,还有一个小问题,装完系统后,有什么特别好用的
  • 我在VMWARE上装LINUX的 ,安装时不能检测到 我的显卡的型号,安装好后不能进入KDE,高分求助啊
  • ubuntu没有顶部工具栏,不能移动,不能改变大小
  • 我的华硕笔记本M5000安装redhat9不能图形安装,用text模式安装完毕后也不能进xwindow
  • 【新人用Ubuntu】Ubuntu中复制粘贴怎么这么麻烦,CtrC、CtrV不能用,箭头又貌似太灵活不能控制~


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3