当前位置: 技术问答>linux和unix
linux 内存回收
来源: 互联网 发布时间:2016-03-30
本文导语: 我在linux上经常申请1024×1024字节的内存,并且用完就free掉了。 但是leader说这样不好,会有可能因为申请不到连续的内存coredump。 我想问下,有没有这样的,linux的内存是即时回收的吧?我知道java好像不是。 ...
我在linux上经常申请1024×1024字节的内存,并且用完就free掉了。
但是leader说这样不好,会有可能因为申请不到连续的内存coredump。
我想问下,有没有这样的,linux的内存是即时回收的吧?我知道java好像不是。
但是leader说这样不好,会有可能因为申请不到连续的内存coredump。
我想问下,有没有这样的,linux的内存是即时回收的吧?我知道java好像不是。
|
看你是什么环境了。
如果是在pc上跑,内存一般不是问题。特别是系统会替你管理虚拟内存,只要硬盘不满,内存应该总能申请到。
如果涉及硬件开发,,那好像可能会产生问题。我没做过具体工作,但是感觉的确是有那个可能性的。
如果是在pc上跑,内存一般不是问题。特别是系统会替你管理虚拟内存,只要硬盘不满,内存应该总能申请到。
如果涉及硬件开发,,那好像可能会产生问题。我没做过具体工作,但是感觉的确是有那个可能性的。
|
不至于coredump吧?申请不成功返回的不是NULL指针么?判断一下如果是NULL,就异常退出呗
|
应该不会。申请的内存是内存页的整数倍,不会有碎片问题。
效率倒是个问题。
效率倒是个问题。
|
楼主的leader可能是说的没有mmu的系统吧,在没有存储器管理单元(mmu)的机器上这样做确实存在问题。
在有mmu的机器上只是效率上可能牺牲一点,到不至于把系统能崩溃-只要你的程序逻辑上没有漏洞。
在有mmu的机器上,虽然你申请的是1024*1024但实际上并不会真正的把这么多的空间立即分给你,只有到你真正使用到的时候系统才会真正分配给你的。
在有mmu的机器上只是效率上可能牺牲一点,到不至于把系统能崩溃-只要你的程序逻辑上没有漏洞。
在有mmu的机器上,虽然你申请的是1024*1024但实际上并不会真正的把这么多的空间立即分给你,只有到你真正使用到的时候系统才会真正分配给你的。