衡阳派盒市场营销有限公司

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

內存又恢復到上次的數值了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5092

    文章

    19177

    瀏覽量

    307653
  • 內存
    +關注

    關注

    8

    文章

    3055

    瀏覽量

    74327
收藏 人收藏

    評論

    相關推薦

    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

    優秀的嵌入式程序有什么特點?

    大家都來說說,優秀的嵌入式程序應該遵循哪些特點。優秀的嵌入式程序特點:1、增加debug開關,便于調試。2、增加一些宏定義、偽編譯,便于調試。3、*.h文件,*.c文件與main.c分開,使用時用
    發表于 03-13 06:53

    嵌入式系統內存優化使用

    響應運行。并且經過實踐證明,嵌入式系統內存優化使用,能夠提升系統空間5%內存,確保系統順利運行。
    發表于 11-04 06:23

    單片機開發之節省內存大法

    提點一下,我一說估計很多人都清楚了,不過時間久了一些簡單的知識沒有去使用或者重溫,到了解決問題的時候還是容易卡殼,如果還沒有看過以前文章的可以到下面鏈接看看:?單片機開發之節省內存大法(...
    發表于 01-25 07:08

    嵌入式系統的設計方法

    嵌入式系統的設計方法嵌入式系統的C程序設計開始講,一步步深入。
    發表于 03-28 09:45 ?38次下載

    嵌入式系統內存管理方案研究

    摘要:嵌入式系統內存管理機制必須滿足實時性和可靠性的要求。本文以開源的的操作系統RTEMS為例,介紹嵌入式
    發表于 05-24 23:57 ?1182次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>內存</b>管理方案研究

    [學習嵌入式]嵌入式系統學習方法,輕松入門嵌入式

    [學習嵌入式]嵌入式系統學習方法,輕松入門嵌入式
    發表于 03-28 15:29 ?79次下載

    嵌入式操作系統FreeRTOS內存如何管理和堆

    嵌入式操作系統FreeRTOS內存管理和堆
    的頭像 發表于 01-10 15:17 ?4816次閱讀
    <b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系統</b>FreeRTOS<b class='flag-5'>內存</b>如何管理和堆

    嵌入式系統內存指針操作

    嵌入式系統中,對內存地址的操作是一個重要的方面,從廣義上講,嵌入式系統的地址空間可以分成以下三種類型:
    的頭像 發表于 08-27 11:33 ?6245次閱讀

    嵌入式linux+io+優化,嵌入式Linux系統內存優化使用方法研究

    優化進而確保響應運行。并且經過實踐證明,嵌入式系統內存優化使用,能夠提升系統空間5%內存,確保系統
    發表于 11-01 16:31 ?10次下載
    <b class='flag-5'>嵌入式</b>linux+io+優化,<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系統</b><b class='flag-5'>內存</b>優化使用<b class='flag-5'>方法</b>研究

    如何通過設計模式來節省內存

    相信大家日常開發過程中,一個優秀的程序猿寫出的代碼一定要節省空間的,比如節省內存節省磁盤等等。那么如何通過設計模式來節省內存呢? 1、什么是享元模式? Use sharing to
    的頭像 發表于 10-09 10:31 ?563次閱讀
    如何通過設計模式來<b class='flag-5'>節省內存</b>

    LDO在嵌入式系統中的應用 常見LDO故障及解決方法

    的應用及其常見故障和解決方法的概述。 應用場景 電源轉換 :LDO可以將電池電壓或其他電源電壓轉換為嵌入式系統所需的穩定電壓。 噪聲抑制 :LDO能有效降低電源線上的噪聲,為敏感的模擬電路提供干凈的電源。 功耗管理 :在低功耗應
    的頭像 發表于 12-13 09:08 ?866次閱讀
    六合彩结果| 吕百家乐赢钱律| 玩百家乐官网678娱乐城| 威尼斯人娱乐城信誉怎么样| 乐享百家乐官网的玩法技巧和规则 | 自贡百家乐官网赌场| 澳门凯旋门娱乐城| 赌场百家乐的玩法技巧和规则 | 大理市| 免费百家乐统计软件| 现金百家乐伟易博| 打百家乐官网庄闲的技巧| 蓝盾百家乐| 大发888玩家论坛| 环球百家乐官网娱乐城| 川宜百家乐官网分析软件| 38坊| 水果机技巧| 百家乐怎么玩最保险| 做生意风水知识| 百家乐官网强弱走势图| 百家乐官网玩法的技巧| 甘谷县| 易发娱乐| 真人游戏试玩| 线上百家乐怎么玩| 百家乐赌博程序| 有破解百家乐仪器| 网上百家乐真实度| 百家乐网站出售| 做生意招财小窍门| 做生意摆什么好招财| 百家乐官网群shozo权威| 百家乐官网庄闲排| 百家乐官网的巧门| 百家乐官网庄多还是闲多| 长乐坊百家乐官网娱乐城| 娱乐城百家乐官网高手| 百家乐官网全讯网2| 百家乐官网的必胜方法| 蓝盾百家乐官网平台租用|