chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

Linux Swap交換空間詳解:Android編譯內(nèi)存不足?這樣擴充立竿見影

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2025-12-06 08:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux系統(tǒng)使用過程中,你是否遇到過內(nèi)存不足的報錯?比如編譯Android源碼時,明明按教程操作,卻因物理內(nèi)存沒達到16G要求而編譯中斷?這正是Swap交換空間不足在搞鬼。今天不僅要帶大家搞懂Swap的核心作用,還會結(jié)合Android源碼編譯的實戰(zhàn)場景,給出針對性的擴充方案,新手也能輕松上手~

一、什么是Swap?為什么非它不可?

1.通俗理解:內(nèi)存的備用抽屜

如果把物理內(nèi)存(RAM)比作電腦桌面”——常用文件隨手可及;那Swap交換空間就是抽屜:當(dāng)桌面堆滿文件(物理內(nèi)存占滿),系統(tǒng)會把暫時不用的文件(不活躍進程數(shù)據(jù))放進抽屜,騰出桌面給急需的任務(wù)。

2.三大核心作用,缺一不可

?應(yīng)急救急:物理內(nèi)存耗盡時,Swap臨時承接數(shù)據(jù),避免程序直接OOM(內(nèi)存溢出)崩潰,比如Android源碼編譯這類高內(nèi)存需求場景;

?支持休眠:系統(tǒng)休眠時,會把全部內(nèi)存數(shù)據(jù)寫入Swap,喚醒時再讀回內(nèi)存,沒有Swap就無法使用休眠功能;

?優(yōu)化性能:長期運行的服務(wù)器中,Swap會緩存不常用進程,讓物理內(nèi)存集中供給活躍程序,提升整體響應(yīng)速度。

3.實戰(zhàn)場景:Android源碼編譯的內(nèi)存門檻

Android源碼編譯是典型的高內(nèi)存消耗場景——官方推薦物理內(nèi)存≥16G,若你的Linux主機只有8G/12G物理內(nèi)存,編譯過程中會頻繁出現(xiàn)以下報錯:

Outof memory: Killed process12345(cc1plus) total-vm:1234567kB, anon-rss:876543kB, file-rss:0kB, shmem-rss:0kB

或直接提示內(nèi)存不足,編譯中斷。這時候無需更換硬件,通過擴充Swap物理內(nèi)存+ Swap”的總可用內(nèi)存提升到16G以上,就能順利完成編譯。

二、擴充Swap的兩種實用方法(附Android編譯場景適配)

在操作前,先搞清楚當(dāng)前Swap狀態(tài)——這是后續(xù)操作的基礎(chǔ)。

2.1前提:檢查當(dāng)前Swap狀態(tài)

打開終端,執(zhí)行以下命令,查看Swap的大小、是否啟用:

# 方法1:簡潔查看(h=人性化單位)free -h# 方法2:詳細(xì)查看Swap設(shè)備/文件swapon --show# 方法3:查看Swap使用情況cat/proc/swaps

輸出示例(8G物理內(nèi)存,無Swap時):

      total    used    free   shared buff/cache  availableMem:     7.7Gi   1.2Gi   5.3Gi   245Mi   1.2Gi   6.1GiSwap:      0B     0B     0B # 無Swap空間,編譯Android會報錯

2.2方法一:文件方式(推薦!Android編譯首選)

適合沒有空閑磁盤分區(qū)的場景,直接創(chuàng)建文件作為Swap,靈活調(diào)整大小,完美適配Android編譯的臨時高內(nèi)存需求。

步驟1:創(chuàng)建適配Android編譯的Swap文件(關(guān)鍵?。?/span>

假設(shè)你的物理內(nèi)存是8G,需要創(chuàng)建8G Swap文件(總可用內(nèi)存達16G,滿足編譯要求),用fallocate命令快速創(chuàng)建:

# 創(chuàng)建8G的Swap文件(路徑/swapfile可自定義,大小根據(jù)物理內(nèi)存調(diào)整)sudofallocate -l 8G /swapfile

如果系統(tǒng)提示fallocate:未找到命令,改用dd命令(速度稍慢,但兼容性強):

# bs=1G 每次寫入1G,count=8 共寫入8次,總計8G(Android編譯推薦大小)sudoddif=/dev/zero of=/swapfile bs=1G count=8

注意:若物理內(nèi)存是12G,創(chuàng)建4G Swap即可(12+4=16G);物理內(nèi)存6G則創(chuàng)建10G Swap6+10=16G),核心是讓物理內(nèi)存+ Swap”≥16G。

步驟2:設(shè)置安全權(quán)限(避免敏感數(shù)據(jù)泄露)

Swap文件包含系統(tǒng)和編譯過程中的敏感數(shù)據(jù),必須設(shè)置為僅root可讀可寫:

sudochmod600 /swapfile
步驟3:格式化Swap文件(系統(tǒng)識別必備)

將創(chuàng)建的文件格式化為Swap格式,讓Linux系統(tǒng)能正常使用:

sudomkswap /swapfile

輸出提示Setting up swapspace version 1, size = 8 GiB表示成功。

步驟4:啟用新Swap文件(立即生效,無需重啟)

sudoswapon /swapfile
步驟5:設(shè)置開機自動掛載(編譯過程不中斷)

Android源碼編譯耗時久(可能數(shù)小時),若中途重啟,Swap會失效導(dǎo)致編譯中斷,需編輯/etc/fstab文件實現(xiàn)永久生效:

1.先備份fstab(防止改錯導(dǎo)致系統(tǒng)無法啟動):

sudocp/etc/fstab /etc/fstab.bak

1.編輯文件:

sudonano /etc/fstab

1.在文件末尾添加一行(復(fù)制粘貼即可):

/swapfile swap swap defaults 0 0

1.保存退出(nano編輯器按Ctrl+O回車Ctrl+X)。

步驟6:驗證是否滿足Android編譯要求

再次執(zhí)行free -h,看到“Mem+Swap”≥16G即達標(biāo):

     total    used    free   shared buff/cache  availableMem:     7.7Gi   1.3Gi   5.2Gi   250Mi   1.2Gi   6.0GiSwap:     8.0Gi     0B   8.0Gi # 總可用內(nèi)存達13.7Gi?不對!

補充說明:available是系統(tǒng)可分配給新進程的內(nèi)存(含空閑內(nèi)存+可釋放緩存),實際編譯時,系統(tǒng)會動態(tài)使用物理內(nèi)存和Swap,只要“Swap +物理內(nèi)存總量”≥16G,就能避免OOM報錯。

2.3方法二:分區(qū)方式(適合有空閑磁盤分區(qū),性能更優(yōu))

如果你的硬盤有未分配的空閑分區(qū)(比如/dev/sda3,大小≥8G),可直接將分區(qū)設(shè)為Swap,讀寫速度比文件方式快,適合頻繁編譯Android源碼的場景。

簡要步驟:

1.查看空閑分區(qū):sudo fdisk -l(找到標(biāo)注free的分區(qū),確保大小≥8G,如/dev/sda3);

2.格式化分區(qū)為Swapsudo mkswap /dev/sda3;

3.啟用分區(qū):sudo swapon /dev/sda3;

4.永久生效:編輯/etc/fstab,添加/dev/sda3 swap swap defaults 0 0

5.驗證:free -h確認(rèn)Swap大小≥8G,總內(nèi)存達標(biāo)。

三、Android編譯場景專屬注意事項(避坑必看)

1.Swap大小精準(zhǔn)匹配

?核心原則:物理內(nèi)存(RAM+ Swap ≥16GAndroid源碼編譯最低要求);

?示例:8G RAM→8G Swap12G RAM→4G Swap16G RAM→無需擴充(若編譯時仍卡頓,可加4-8G Swap)。

1.存儲介質(zhì)優(yōu)先選SSD

Android編譯過程中會頻繁讀寫Swap,機械硬盤(HDD)速度慢,會導(dǎo)致編譯卡頓;SSD的讀寫速度是HDD的數(shù)倍,能大幅提升Swap響應(yīng)速度,避免編譯耗時翻倍。

2.編譯時關(guān)閉其他高內(nèi)存進程

擴充Swap后,盡量關(guān)閉瀏覽器、虛擬機等占用內(nèi)存的程序,讓系統(tǒng)把物理內(nèi)存和Swap集中供給編譯進程,進一步減少卡頓和報錯概率。

3.如何刪除無用Swap?

若后續(xù)不再編譯Android源碼,可刪除Swap釋放磁盤空間:

# 臨時關(guān)閉Swapsudoswapoff /swapfile(或/dev/sda3)# 永久刪除:刪除/etc/fstab中的對應(yīng)行,再刪除文件/分區(qū)sudorm/swapfile

四、總結(jié)

Swap交換空間是Linux系統(tǒng)的內(nèi)存救星,尤其對于Android源碼編譯這類高內(nèi)存需求場景,無需升級硬件,通過文件或分區(qū)方式擴充Swap,就能輕松突破內(nèi)存限制。關(guān)鍵要記住:根據(jù)物理內(nèi)存精準(zhǔn)設(shè)置Swap大?。們?nèi)存≥16G),優(yōu)先用SSD存儲,設(shè)置開機自動掛載避免編譯中斷。

按照本文步驟操作后,再執(zhí)行Android源碼編譯命令,就能順利避開OOM報錯,讓編譯過程一路暢通~ 如果你在操作中遇到問題,歡迎在評論區(qū)留言交流!

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

    關(guān)注

    12

    文章

    3993

    瀏覽量

    133530
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11681

    瀏覽量

    218581
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    691

    瀏覽量

    35014
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    升級BIOS時提示內(nèi)存不足怎么辦

    升級BIOS時提示內(nèi)存不足怎么辦在升級Award BIOS 時出現(xiàn)提示"Insufficient memory ",我該怎么辦?答:該提示的含義是內(nèi)存不足,主要是640K 常規(guī)
    發(fā)表于 03-30 14:01

    紅米顯示內(nèi)存不足怎么處理

    手機上原來就安裝有QQ聊天軟件,現(xiàn)在一打開空間就顯示內(nèi)存不足,有許多空間的圖片都不及時顯示。這不是壞,但是怎么處理呢。手機本身可以運行的空間就找1G。該怎么擴展呢。失眠了,看手機才想起
    發(fā)表于 03-09 02:12

    RAM內(nèi)存不足錯誤

    遇到難題一、:RAM內(nèi)存不足錯誤:一 、將UC/OS III移植到STM32F103C8T6的遇到內(nèi)存不足的報錯。分析,c8t6系類RAM內(nèi)存只有20KB。如上圖。在代碼中將heap_size設(shè)置成
    發(fā)表于 08-20 08:14

    HFSS軟件內(nèi)存不足的解決方法

    HFSS軟件內(nèi)存不足該如何解決?
    的頭像 發(fā)表于 07-15 10:15 ?2.4w次閱讀

    虛擬內(nèi)存不足的原因

    電腦系統(tǒng)是WinXP,最近使用時,沒開多少程序,卻常常出現(xiàn)虛擬內(nèi)存不足的系統(tǒng)提示??赡苡幸韵聨讉€原因
    的頭像 發(fā)表于 03-14 14:25 ?3645次閱讀

    虛擬內(nèi)存不足怎么解決

    電腦的虛擬內(nèi)存不足以后,很多功能就無法使用了,且會彈出如下所示的頁面。這就說明虛擬內(nèi)存無法滿足我們的使用需求,就需要咱們對電腦的虛擬內(nèi)存進行重新設(shè)置。那么如何設(shè)置呢?請看下文。
    的頭像 發(fā)表于 03-14 14:29 ?1.4w次閱讀

    需要了解Linux swap分區(qū)的擴展

    LinuxSwap(即:交換分區(qū)),類似于Windows的虛擬內(nèi)存,就是當(dāng)內(nèi)存不足的時候,把一部分硬盤
    發(fā)表于 05-15 08:51 ?1750次閱讀
    需要了解<b class='flag-5'>Linux</b> <b class='flag-5'>swap</b>分區(qū)的擴展

    嵌入式LinuxSwap交換區(qū)剖析

    時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復(fù)保存的數(shù)據(jù)到內(nèi)存中。
    發(fā)表于 04-02 14:36 ?1050次閱讀

    植保無人機在農(nóng)業(yè)領(lǐng)域的應(yīng)用立竿見影 對于農(nóng)業(yè)生產(chǎn)的幫助成效卓著

    無人機出現(xiàn)在人們的視野中也有十幾年了,無人機應(yīng)用也熱火朝天在各個行業(yè)中應(yīng)用起來,公安系統(tǒng),交通系統(tǒng),監(jiān)獄系統(tǒng),環(huán)保系統(tǒng),電力系統(tǒng),水利系統(tǒng)解決方案層出不窮。然而,經(jīng)過這些年的發(fā)展,植保無人機在農(nóng)業(yè)領(lǐng)域的應(yīng)用可以說是最見成效,對于農(nóng)業(yè)生產(chǎn)的幫助是立竿見影,成效卓著。
    發(fā)表于 12-24 14:10 ?1637次閱讀

    手機內(nèi)存不足的清理方法

    很多時候當(dāng)我們拿起手機時,突然提示我們手機內(nèi)存不足,無法安裝應(yīng)用,部分功能受影響,手機最近頻頻提醒內(nèi)存空間不足,隨著手機使用時間的延長,手機不可避免的越來越臃腫,手機運行速度也是一卡再卡。怎么辦?沒關(guān)系,又顯示
    發(fā)表于 05-20 09:49 ?1.1w次閱讀

    電腦和手機的內(nèi)存不足怎么辦

    如果是電腦內(nèi)存不足,可以通過任務(wù)管理器關(guān)閉部分應(yīng)用程序,也可以在控制面板中調(diào)整虛擬內(nèi)存的大小,還可以通過增加內(nèi)存容量方式解決。如果是手機運行內(nèi)存不足,可以一鍵關(guān)閉多任務(wù)。如果是手機存儲
    發(fā)表于 05-22 09:41 ?2377次閱讀

    虛擬內(nèi)存不足的解決辦法

    虛擬內(nèi)存就是當(dāng)電腦物理內(nèi)容不夠或者防止運行大型軟件時出現(xiàn)不夠,在系統(tǒng)盤,比如C盤中劃出一個區(qū)域,用來存儲交換數(shù)據(jù),類似物理內(nèi)存的功能,所以就叫虛擬內(nèi)存。當(dāng)出現(xiàn)虛擬
    發(fā)表于 05-27 10:19 ?3236次閱讀
    虛擬<b class='flag-5'>內(nèi)存不足</b>的解決辦法

    電腦內(nèi)存不足怎么解決win10

    電腦內(nèi)存大家一定都知道吧,通常我們在用電腦的時候,當(dāng)我們打開大型的網(wǎng)絡(luò)游戲和各種應(yīng)用的軟件時,如果我們的電腦本身的內(nèi)存不足,就會使游戲和大型的軟件打開失敗或者是終止。而且電腦內(nèi)存不足會大大降低電腦
    發(fā)表于 06-12 10:31 ?1497次閱讀

    RAM內(nèi)存不足的表現(xiàn)及解決方法

    RAM內(nèi)存不足的表現(xiàn)及解決方法 一、RAM內(nèi)存不足的表現(xiàn) 系統(tǒng)運行緩慢 當(dāng)RAM內(nèi)存不足時,計算機的響應(yīng)速度會明顯下降,打開程序或文件需要更長的時間。 頻繁的頁面交換(Page Swa
    的頭像 發(fā)表于 11-11 09:53 ?7795次閱讀

    虛擬內(nèi)存不足如何解決 虛擬內(nèi)存和物理內(nèi)存的區(qū)別

    虛擬內(nèi)存不足的解決方案 虛擬內(nèi)存不足是計算機用戶經(jīng)常遇到的問題,尤其是在運行大型軟件或多任務(wù)處理時。以下是一些解決虛擬內(nèi)存不足問題的方法: 增加物理內(nèi)存(RAM) : 這是最直接的解決
    的頭像 發(fā)表于 12-04 09:14 ?2460次閱讀