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)存不足?這樣擴(kuò)充立竿見影

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

掃碼添加小助手

加入工程師交流群

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

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

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

如果把物理內(nèi)存(RAM)比作電腦桌面”——常用文件隨手可及;那Swap交換空間就是抽屜:當(dāng)桌面堆滿文件(物理內(nèi)存占滿),系統(tǒng)會把暫時不用的文件(不活躍進(jìn)程數(shù)據(jù))放進(jìn)抽屜,騰出桌面給急需的任務(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)化性能:長期運(yùn)行的服務(wù)器中,Swap會緩存不常用進(jìn)程,讓物理內(nèi)存集中供給活躍程序,提升整體響應(yīng)速度。

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

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

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

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

二、擴(kuò)充Swap的兩種實(shí)用方法(附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會報(bào)錯

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)存達(dá)16G,滿足編譯要求),用fallocate命令快速創(chuàng)建:

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

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

# bs=1G 每次寫入1G,count=8 共寫入8次,總計(jì)8G(Android編譯推薦大?。?/span>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è)置開機(jī)自動掛載(編譯過程不中斷)

Android源碼編譯耗時久(可能數(shù)小時),若中途重啟,Swap會失效導(dǎo)致編譯中斷,需編輯/etc/fstab文件實(shí)現(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:驗(yàn)證是否滿足Android編譯要求

再次執(zhí)行free -h,看到“Mem+Swap”≥16G即達(dá)標(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)存達(dá)13.7Gi?不對!

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

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.驗(yàn)證:free -h確認(rèn)Swap大小≥8G,總內(nèi)存達(dá)標(biāo)。

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

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

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

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

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

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

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

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

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ū)方式擴(kuò)充Swap,就能輕松突破內(nèi)存限制。關(guān)鍵要記?。焊鶕?jù)物理內(nèi)存精準(zhǔn)設(shè)置Swap大?。們?nèi)存≥16G),優(yōu)先用SSD存儲,設(shè)置開機(jī)自動掛載避免編譯中斷。

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

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

    關(guān)注

    12

    文章

    3986

    瀏覽量

    133070
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11628

    瀏覽量

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

    關(guān)注

    0

    文章

    688

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

    遇到難題一、:RAM內(nèi)存不足錯誤:一 、將UC/OS III移植到STM32F103C8T6的遇到內(nèi)存不足的報(bào)錯。分析,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 ?3575次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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