社区
C语言
帖子详情
全局变量定义过多会导致程序运行内存过大么?
林哥
2012-04-18 11:07:36
最近做MRE的手机软件,程序大小800多K,客户反映程序运行耗3M多的内存空间,请问下有可能么? 代码静态全局变量蛮多的,会不会是这个原因,求解释。 还有,怎么去调试去看程序运行内存信息?
...全文
2658
6
打赏
收藏
全局变量定义过多会导致程序运行内存过大么?
最近做MRE的手机软件,程序大小800多K,客户反映程序运行耗3M多的内存空间,请问下有可能么? 代码静态全局变量蛮多的,会不会是这个原因,求解释。 还有,怎么去调试去看程序运行内存信息?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
“代码静态全局变量蛮多的,会不会是这个原因”
静态全局变量,会从程序开始运行占用内存一直到程序运行结束。
不像函数内的局部变量那样,函数返回时自动释放。
所以静态全局变量非常多的话,是会导致程序运行时占用很大的内存。
编程习惯 |
全局变量
的危害
长期占用
内存
:
全局变量
生命周期长,
程序运行
期一直存在,始终占有那块存储区; 难以定位修改:
全局变量
是公共的,全部函数都可以访问,难以定位
全局变量
在哪里被修改,加大了调试的难度; 使函数难以理解:使用全局...
局部变量和
全局变量
,如何减少
全局变量
的频繁使用
在我开发的初期,我经常使用
全局变量
来实现功能逻辑,然而这样会对工程的耦合性等都产生很大的影响。因此这篇文章将记录对
全局变量
的讲解和如何减少它的使用。 一、局部变量(Local Variable) ..
stm32局部变量
定义
过大
导致
栈溢出
并且在调试后,我发现最高能运行的点数是512,经过上网查询我终于发现了原因,就是
定义
的局部变量
过大
导致
栈溢出,解决方法如下。 我的代码是库函数版本,所以找到startup_stm32f40_41xxx.s 文件,默认设置如下,...
常见单片机
内存
性能瓶颈及优化方案
在程序中
定义
过多的
全局变量
会
导致
内存
占用
过大
,从而影响程序的运行速度。在单片机的开发中,由于硬件资源的限制,
内存
空间的使用尤为关键。通过以上的优化方案,可以提高单片机程序的
内存
性能,从而提高程序的运行...
代码优化--避免
全局变量
当
全局变量
过多,就会
导致
内存
占用
过大
,代码维护测试就更难,所以,代码优化--要尽量避免
全局变量
的出现。 本篇文章内容主要参考:“编写可维护的JavaScript”和“JavaScript高级程序设计(第三版)”。 一:全局...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章