0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统节省内存的解决方法

如意 来源:CSDN 作者:CaspianSea 2020-06-28 11:57 次阅读

嵌入式系统内存往往是有限制的(成本考虑),因此需要尽量支持更多的功能,同时尽量减少使用的内存。

一种方法是把需要支持的功能做成共享库的形式,需要这个功能的时候加载共享库,不需要的时候卸载共享库,从而把内存释放出来。

下面举个例子说明。

嵌入式系统节省内存的解决方法

$ gcc 1.c -shared -fpic -g -o lib1.so

嵌入式系统节省内存的解决方法

$ gcc test.c -g -o test -ldl -l1 -L.

打开gdb,执行 gdb test,

在dlopen执行前,程序内存使用:

$ ps -p $(pidof test) -o %cpu,%mem,cmd,rss,rsz,vsz,trs

%CPU %MEM CMD RSS RSZ VSZ TRS

0.0 0.0 /home/charles/tmp/test 696 696 2084 1

dlopen()执行后:

$ ps -p $(pidof test) -o %cpu,%mem,cmd,rss,rsz,vsz,trs

%CPU %MEM CMD RSS RSZ VSZ TRS

0.0 1.0 /home/charles/tmp/test 42000 42000 43192 1

dlclose()后:

ps -p $(pidof test) -o %cpu,%mem,cmd,rss,rsz,vsz,trs

%CPU %MEM CMD RSS RSZ VSZ TRS

0.0 0.0 /home/charles/tmp/test 1092 1092 2216 1

可以看到,大部分用到的内存都释放掉了。

然后如果执行下一次循环, dlopen()后:

$ ps -p $(pidof test) -o %cpu,%mem,cmd,rss,rsz,vsz,trs

%CPU %MEM CMD RSS RSZ VSZ TRS

0.0 1.0 /home/charles/tmp/test 42008 42008 43192 1

执行 dlclose()后:

$ ps -p $(pidof test) -o %cpu,%mem,cmd,rss,rsz,vsz,trs

%CPU %MEM CMD RSS RSZ VSZ TRS

0.0 0.0 /home/charles/tmp/test 1092 1092 2216

内存又恢复到上次的数值了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288362
  • 内存
    +关注

    关注

    8

    文章

    2767

    浏览量

    72753
收藏 人收藏

    评论

    相关推荐

    windowsXP系统如何节省内存方法

    windowsXP系统如何节省内存方法  XP系统节省内存,加快开机速度的方法如下:1.禁用压
    发表于 02-26 15:40

    嵌入式系统内存管理

    。 B、UCOS的内存管理:UCOS的内存管理与大多数嵌入式系统一样,是flat内存,但在此flat
    发表于 09-17 19:40

    嵌入式系统交叉调试原理和方法

    代理、串口驱动或者TCP/IP驱动需要占用大量的内存空间,因此该方法一般用于内存资源比较丰富的嵌入式系统的调试。
    发表于 12-18 10:55

    Linux嵌入式系统初学者的常见问题解决方法大全

    该文档为Linux嵌入式系统初学者的常见问题解决方法大全(Linux学习指引篇)讲解文档,是一份不错的参考资料,感兴趣的可以下载看看
    发表于 10-16 16:12

    什么是嵌入式操作系统内存管理技术?

    内存。智能手机操作系统作为嵌入式操作系统的一种,较之普通桌面型操作系统,其内存管理有着独特之处
    发表于 07-30 07:19

    嵌入式系统模块化设计有什么方法

    设计方法将复杂的系统合理地划分出不同的功能模块,然后充分利用已有的模块,设计新的模块,最后将这些模块连接起来组成目标系统。模块化的设计方法减少全新的设计、降低开发难度、
    发表于 08-23 07:31

    优秀的嵌入式程序有什么特点?

    大家都来说说,优秀的嵌入式程序应该遵循哪些特点。优秀的嵌入式程序特点:1、增加debug开关,便于调试。2、增加一些宏定义、伪编译,便于调试。3、*.h文件,*.c文件与main.c分开,使用时用
    发表于 03-13 06:53

    嵌入式Web访问时的内存丢失的问题怎么解决?

    嵌入式Web在系统中的应用是什么嵌入式Web访问时的内存丢失的问题怎么解决?
    发表于 04-28 06:28

    嵌入式系统内存优化使用

    响应运行。并且经过实践证明,嵌入式系统内存优化使用,能够提升系统空间5%内存,确保系统顺利运行。
    发表于 11-04 06:23

    嵌入式系统设计方法变化

    嵌入式系统设计方法变化的背景嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动
    发表于 11-08 07:27

    基于嵌入式裸机或RTOS系统内存管理方法的探究

    嵌入式内存管理探究-基于FreeRTOS文章封面本文基于嵌入式裸机或RTOS系统内存管理方法
    发表于 12-17 07:40

    怎么设计嵌入式系统内存管理

    系列文章:一篇讲透嵌入式操作系统任务调度从需求反推设计方案,假如让你设计嵌入式系统内存管理,你怎么设计?最简单的,用一个双链表控制,所有已
    发表于 12-17 06:54

    什么是嵌入式系统?深嵌入式系统又是什么

    物联网中“事物”的定义差异很大。我们将事务定义为通过网络发送和接收信息的嵌入式计算设备(或嵌入式系统)。什么是嵌入式系统
    发表于 12-21 06:48

    单片机开发之节省内存大法

    提点一下,我一说估计很多人都清楚了,不过时间久了一些简单的知识没有去使用或者重温,到了解决问题的时候还是容易卡壳,如果还没有看过以前文章的可以到下面链接看看:☞单片机开发之节省内存大法(...
    发表于 01-25 07:08

    如何通过设计模式来节省内存

    相信大家日常开发过程中,一个优秀的程序猿写出的代码一定要节省空间的,比如节省内存节省磁盘等等。那么如何通过设计模式来节省内存呢? 1、什么是享元模式? Use sharing to
    的头像 发表于 10-09 10:31 322次阅读
    如何通过设计模式来<b class='flag-5'>节省内存</b>