问题描述
- Linux c语言程序内存占用大,需要注意那些方面来削减内存占用
-
搜索了相关资料都是关于堆栈啊这些资料,感觉无从下手,请高手解答
解决方案
首先是考虑你的思路,看能否精简你的思路,使得代码更高效更简单;
其次是注意释放内存,不再用的及时释放,不多占资源;
再次是检查你的全局变量,少用全局变量可以减少运行时占用的内存;
最后是注意不要大文件一次性加载进内存,简单粗暴的效率低下。
解决方案二:
malloc要及时free释放内存
其实就是如果你需要反复申请使用内存,可以考虑利用内存池的概念
还有就是你的程序是否要加载大文件到内存中,如果有,那么就不要一次性加载整个文件,而是分块读取
解决方案三:
如果没有内存泄露的问题,则需要从代码上考虑,减小全局性、大内存的使用,尽量使用局部变量、与动态分析的内存。
在做参数传递时,参数尽量少 & 小。因为做函数调用时,会存在保存环境的动作,要使用堆栈。
如果程序的功能要求,必须使用大内存才能实现,程序占用内存大就是正常的。
另外,你所谓的应用占用内存大,到底是大到什么程序呢?
时间: 2024-12-21 01:41:49