全局变量定义过多会导致程序运行内存过大么?

林哥 2012-04-18 11:07:36
最近做MRE的手机软件,程序大小800多K,客户反映程序运行耗3M多的内存空间,请问下有可能么? 代码静态全局变量蛮多的,会不会是这个原因,求解释。 还有,怎么去调试去看程序运行内存信息?
...全文
2658 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Red_angelX 2012-04-18
  • 打赏
  • 举报
回复
会,尽量优化为局部变量吧
ghlhy0505 2012-04-18
  • 打赏
  • 举报
回复
静态全局变量太多肯定也是站内存的,另外在看看你的程序是不是还有待其它方面的优化啊,比如过多的for循环啊递归调用之类的,我没做过手机的程序,pc上的程序如果又从其它的地方获取资源的,是不是资源过大啊,可以考虑分批获取啊之类的
以免我忘记 2012-04-18
  • 打赏
  • 举报
回复
会的。
qiuhui00 2012-04-18
  • 打赏
  • 举报
回复
静态全局变量放在数据段,整个程序运行期间都是存在的,所以全局变量越多,程序体积越大。
JackPan 2012-04-18
  • 打赏
  • 举报
回复
没做过MRE,不过全局变量是放在全局数据区的,程序不退出,这个数据一直存在,如果全局变量定义过多肯定会导致程序运行内存过大,到底全局变量占有多少空间可以算出来的。
northcan 2012-04-18
  • 打赏
  • 举报
回复
“代码静态全局变量蛮多的,会不会是这个原因”

静态全局变量,会从程序开始运行占用内存一直到程序运行结束。
不像函数内的局部变量那样,函数返回时自动释放。
所以静态全局变量非常多的话,是会导致程序运行时占用很大的内存。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧