0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

從軟件角度看看內(nèi)存

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-10-30 17:41 ? 次閱讀

關于內(nèi)存,從軟件的角度去查看,其實作為一個軟件程序員,大多數(shù)對這個維度的接觸還是蠻多的。linux中有個free命令,其就是查看系統(tǒng)內(nèi)存的情況。

free命令的選項也比較簡單,常用的參數(shù)命令如下。

-b 以Byte為單位顯示內(nèi)存使用情況。

-k 以KB為單位顯示內(nèi)存使用情況。

-m 以MB為單位顯示內(nèi)存使用情況。

-g 以GB為單位顯示內(nèi)存使用情況。

-o 不顯示緩沖區(qū)調(diào)節(jié)列。

-s《間隔秒數(shù)》 持續(xù)觀察內(nèi)存使用狀況。

-t 顯示內(nèi)存總和列。

-V 顯示版本信息。

下面是Linux機器中使用free -m命令看到的內(nèi)存情況。

$ free -mtotal used free shared buff/cache available

Mem: 7763 5507 907 0 1348 1609

Swap: 16197 2940 13257

figo@figo-OptiPlex-9020:~$

可以看到,這個機器上一共有7 763MB物理內(nèi)存。

total:指系統(tǒng)中總的內(nèi)存。這里有兩種內(nèi)存,一個是“Mem”,指的是物理內(nèi)存;另一個是“Swap”,指的是交換磁盤。

used:指程序使用的內(nèi)存。

free:未被分配的物理內(nèi)存大小。

shared:共享內(nèi)存大小,主要用于進程間通信。

buff/cache:buff指的是buffers,用來給塊設備做緩存,而cache指的是page cache,用來給打開的文件做緩存,以提高訪問文件的速度。

available:這是free命令新加的一個選項。當內(nèi)存短缺時,系統(tǒng)可用回收buffers和page cache。那么availabe = free

  • buffers + page cache對不對呢?

其實在現(xiàn)在的Linux內(nèi)核中,這個公式不完全正確,因為buffers和page cache里并不是所有的內(nèi)存都可以回收的,比如共享內(nèi)存段、tmpfs和 ramfs 等屬于不可回收的。所以這個公式應該變成:available = free + buffers + page cache –不可回收部分。

在我們寫代碼的時候也會用到malloc()這個函數(shù),如果你申請內(nèi)存沒有用到,那可能是你使用的高級語言,申請內(nèi)存的函數(shù)封裝了malloc。

圖片

對于這些函數(shù)瞅一眼就行了,需要用的時候再好好深入學習一下這個里面的東西。了解這個API背后的實現(xiàn)。

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

    關注

    87

    文章

    11304

    瀏覽量

    209535
  • 內(nèi)存
    +關注

    關注

    8

    文章

    3025

    瀏覽量

    74060
  • 軟件
    +關注

    關注

    69

    文章

    4945

    瀏覽量

    87506
收藏 人收藏

    評論

    相關推薦

    硬件引申出內(nèi)存屏障,帶你深入了解Linux內(nèi)核RCU

    本文硬件的角度引申出內(nèi)存屏障,這不是內(nèi)存屏障的詳盡手冊,但是相關知識對于理解RCU有所幫助。
    的頭像 發(fā)表于 09-19 11:39 ?6142次閱讀
    <b class='flag-5'>從</b>硬件引申出<b class='flag-5'>內(nèi)存</b>屏障,帶你深入了解Linux內(nèi)核RCU

    Linux kernel內(nèi)存管理模塊結構分析

    基于上面章節(jié)的需求,Linux kernel虛擬內(nèi)存(VM)、DMA mapping以及DMA buffer sharing三個角度,對內(nèi)存進行管理.
    發(fā)表于 09-19 11:55 ?1773次閱讀
    Linux kernel<b class='flag-5'>內(nèi)存</b>管理模塊結構分析

    可綜合的RTL代碼的角度聊聊interface

    SystemVerilog引入了interface,這里我們可綜合的RTL代碼的角度聊聊interface。
    的頭像 發(fā)表于 10-12 09:06 ?1831次閱讀
    <b class='flag-5'>從</b>可綜合的RTL代碼的<b class='flag-5'>角度</b>聊聊interface

    內(nèi)存芯片測試軟件工具

    內(nèi)存芯片測試軟件工具,操作簡單的。
    發(fā)表于 03-25 08:57 ?37次下載

    外觀上識別內(nèi)存

     外觀上識別內(nèi)存   安裝好CPU后,接下來就要開始安裝內(nèi)存條了。在安裝內(nèi)存條之前,可以在主板說明書上查閱主板可支持的
    發(fā)表于 12-17 16:21 ?2751次閱讀

    Elastos內(nèi)存管理對軟件調(diào)試的支持

    軟件調(diào)試支持是操作系統(tǒng)的重要組成部分,而由于內(nèi)存管理不善造成的軟件BUG占軟件故障的很大比例。內(nèi)存
    發(fā)表于 12-01 15:38 ?19次下載
    Elastos<b class='flag-5'>內(nèi)存</b>管理對<b class='flag-5'>軟件</b>調(diào)試的支持

    設計角度透視 數(shù)字集成電路

    設計角度透視 數(shù)字集成電路講解。
    發(fā)表于 03-24 17:47 ?0次下載

    應用角度詳解什么是AXI

    本節(jié)介紹的AXI是個什么東西呢,它其實不屬于Zynq,不屬于Xilinx,而是屬于ARM。它是ARM最新的總線接口,以前叫做AMBA,3.0以后就稱為AXI了。 書上講的AXI比較具體,本節(jié)呢不打算落入俗套,應用角度解釋AX
    的頭像 發(fā)表于 07-13 07:08 ?1.1w次閱讀
    <b class='flag-5'>從</b>應用<b class='flag-5'>角度</b>詳解什么是AXI

    純粹軟件技術的角度看Windows CE

    純粹軟件技術的角度看Windows CE,則可以說Windows CE就是嵌入式的Windows,雖然Windows CE不是微軟唯一的一款嵌入式操作系統(tǒng)產(chǎn)品,但無疑是最有代表性的一款。在純粹技術的方面,Windows CE和
    的頭像 發(fā)表于 09-30 09:43 ?2560次閱讀
    <b class='flag-5'>從</b>純粹<b class='flag-5'>軟件</b>技術的<b class='flag-5'>角度</b>看Windows CE

    信號完整性角度談選擇示波器

    信號完整性角度談如何選擇示波器
    的頭像 發(fā)表于 01-13 15:40 ?3191次閱讀

    如何理解現(xiàn)場總線?工業(yè)通信的角度看看資料下載

    電子發(fā)燒友網(wǎng)為你提供如何理解現(xiàn)場總線?工業(yè)通信的角度看看資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-15 08:45 ?12次下載
    如何理解現(xiàn)場總線?<b class='flag-5'>從</b>工業(yè)通信的<b class='flag-5'>角度</b><b class='flag-5'>看看</b>資料下載

    應用角度介紹講解各種電子元器件

    應用角度介紹講解各種電子元器件。
    發(fā)表于 06-10 10:05 ?66次下載

    軟件角度分析linux內(nèi)核USB子系統(tǒng)的熱插拔過程

    本文軟件角度分析linux內(nèi)核USB子系統(tǒng)的熱插拔過程,以實際分析思路和過程行文,基于linux內(nèi)核版本:4.19.4,記錄分析USB子系統(tǒng)時的所得。
    的頭像 發(fā)表于 01-15 09:28 ?5651次閱讀

    硬件軟件角度理解Gadget框架

    2. 硬件軟件角度理解 Gadget 框架 USB 傳輸?shù)暮诵氖?endpoint,使用 endpoint 可以收發(fā)數(shù)據(jù)。在 endpoint 之上,就可以模擬 USB 串口、USB 觸碰屏
    的頭像 發(fā)表于 07-13 11:32 ?1099次閱讀
    <b class='flag-5'>從</b>硬件<b class='flag-5'>軟件</b><b class='flag-5'>角度</b>理解Gadget框架

    進程的角度內(nèi)存

    在windows下的可執(zhí)行文件的格式為.exe,而Linux的下的是ELF。這是一種文件格式,就是告訴你文件是怎么存儲的。 整個ELF的圖看看 這些內(nèi)容和內(nèi)核空間定義也差不多。 代碼段(.text
    的頭像 發(fā)表于 10-30 18:02 ?504次閱讀
    <b class='flag-5'>從</b>進程的<b class='flag-5'>角度</b>看<b class='flag-5'>內(nèi)存</b>