吴忠躺衫网络科技有限公司

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

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

3天內不再提示

聊聊在手機上開啟快速swap的可能性

SSDFans ? 來源:SSDFans ? 2023-10-17 16:55 ? 次閱讀

導語

在使用移動設備時,用戶同時打開多個app是很常見的。而這很容易造成移動設備的內存緊缺。在現有的方法中,無論是殺死進程(lmkd)來釋放內存還是基于壓縮算法的in-memory swap方式,都面臨用戶切換回被殺死的進程過程效率低下問題,這會影響用戶體驗。

ASAP是一種全新的swap機制,基于預取策略很好地改進了用戶體驗。其來自韓國首爾大學/谷歌等合作,發表于ATC 21。接下來本文將分成背景和動機、設計和實現和測試結果評估三個部分分別介紹ASAP誕生的背景、具體設計和效能。

背景和動機

安卓操作系統的內存管理機制

在安卓操作系統中,用戶正在使用的app被認為是在前臺(foreground),而其他啟動過但是當前沒有被使用的app則是在后臺的。

內存緊缺時,Android有個守護進程lmkd,負責殺死最不重要的進程(比如某個后臺進程),而該進程的數據自然就被釋放了。內存中有個數據集存儲被移入后臺的進程的狀態,用戶切換回被lmkd殺死的進程時,根據這個數據集恢復進程數據。除此之外還有另一種方式即使用基于壓縮算法的in-memory swap(ZRAM),下圖為安卓操作系統in-memory swap機制示意圖,其特點是需要壓縮和解壓縮匿名頁,比通過I/O將匿名頁寫入磁盤更快,但是壓縮的頁依然占用內存空間且壓縮解壓縮占用CPU時鐘周期。通常來說,lmkd會比這個機制先執行。

e25fd8e2-6cc3-11ee-939d-92fbcf53809c.png

安卓操作系統in-memoryswap機制示意圖

為了更加直白地展示lmkd和in-memory swap、普通的swap之間的差異,此處定義兩個變量:

1) Launch Time:應用數據已經不在內存中,但是內存中依然有它的狀態信息。應用利用這些狀態信息從頭重建所有活動所需要的時間,即被lmkd殺死的進程的重啟時間;

2) Switch Time:應用數據依然在內存中。此使啟動應用所需要的時間。

根據文件頁和匿名頁是否在內存中,進而進一步分成四個不同的時間:

1) Ideal Switch Time:進程的文件頁和匿名頁都在內存中

2) Switch Time(file-backed pages in disk):進程的文件頁在磁盤中,匿名頁在內存中

3) Switch Time(most pages not in memory):大部分頁都不在內存中

4) Launch Time:所有頁都不在內存中

下圖展示了四種時間的差異。橫軸是用來測試的八個應用和平均值,縱軸是四種時間的值,可見使用lmkd會比理想情況滿四倍左右,應該盡可能減少lmkd的使用。

e27101a8-6cc3-11ee-939d-92fbcf53809c.png

四種時間的比較

請求調頁的缺陷

內存壓力下,switch time的overhead來自于以下兩個方面:

1)解壓縮匿名頁

2)從磁盤檢索文件頁

而造成switch time大大增加的罪魁禍首就是請求調頁的低效率。下圖表示switch過程中CPU和磁盤帶寬利用率。在switch的過程中,CPU的平均利用率僅僅34.2%;,而磁盤帶寬利用率僅9.4%。究其原因, 在于解壓縮和讀磁盤操作只在一次page fault時啟動。

同時,實驗者們發現,文件頁和匿名頁的交換足跡(footprint)不一樣。文件頁更加“不變”。即同一個應用被重新啟動時,往往訪問大量相同的文件頁。原因是要訪問許多相同的庫文件。因此這給予實驗者一個啟示——為匿名頁和文件頁設計不同的預取器,利用預取來提高硬件利用率。

e2915db8-6cc3-11ee-939d-92fbcf53809c.png

switch過程中CPU和磁盤帶寬利用率

設計和實現

正如前文所說,為文件頁和匿名頁設計不同的預取器。對于文件頁,利用不變的特點減少負載;對于匿名頁,則利用實時信息追蹤變化的switch footprint。其中的挑戰是,如何準確地預測footprint。

1)針對文件頁,如下圖,設計了以下五個部分:

?Offline profiling

利用前十次交換,把訪問超過八次的頁當作預取的候選頁。其結果被存儲在一個文件中。( offline candidate table )。

?Fault logging

記錄每次交換時的缺頁信息。存放在fault buffer中。

?Prepaging Target Management – Insertion

匹配fault buffer和offline candidate table,能匹配到,則插入prepaging target table。

?Prepaging Target Management – Extent Merging

Extent:一次切換時同一文件中被訪問的頁的集合。

兩個extent相近(小于16頁的差距),則合并。

?Prepaging Target Management – Eviction

被預取的頁只要在一次交換中沒有被用到(檢查mapcount是否為0),則從prepaging target table中移除。

e29f7cc2-6cc3-11ee-939d-92fbcf53809c.png

文件頁的預取過程

2)針對匿名頁,如下圖,設計了如下五個部分:

?Fault logging

記錄所有匿名頁的缺頁中斷。

?Access logging

根據頁表的訪問位,記錄Prepaging Target Table和Online Candidate Table中的頁在應用切換時的訪問情況。

?Prepaging Target Management – Check & Insertion

把新的缺頁中斷加入Online Candidate Table。

?Prepaging Target Management – Promotion

若在Online Candidate Table中的頁被訪問了,則加入prepaging target table。

?Prepaging Target Management – Eviction

在prepaging target table和Online Candidate Table中的頁有個超時計時器,每次切換時計時器減小,而頁被訪問時計時器重置,超時后頁被丟棄。

e2ac4bfa-6cc3-11ee-939d-92fbcf53809c.png

匿名頁的預取過程

測試結果評估

1. 在switch latency方面,在兩種不同設備上(Pixel 4代表高端設備,Pixel 3a代表低端設備),基于baseline,平均性能提高了22.2%、28.3%。

e2b596ce-6cc3-11ee-939d-92fbcf53809c.png

寫延遲示意圖

2. 在預測器性能方面,平均準確率分別為匿名頁68.4%,文件頁79.3%;平均召回率分別為匿名頁60.4%,文件頁52.2%。

e2ca1bda-6cc3-11ee-939d-92fbcf53809c.png

預測器性能示意圖

3. 在資源利用率方面,平均提高CPU利用率1.18倍(反映了預取匿名頁的影響);平均提高I/O帶寬的使用率25.2%(反映了預取文件頁的影響)。

總結

ASAP通過合理設計預取機制,在兩種設備上,平均性能分別提高了22.2%、28.3%,取得了不錯的效果。

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

    關注

    68

    文章

    10902

    瀏覽量

    213017
  • 操作系統
    +關注

    關注

    37

    文章

    6895

    瀏覽量

    123745
  • SWAP
    +關注

    關注

    0

    文章

    51

    瀏覽量

    12914

原文標題:聊聊在手機上開啟快速swap的可能性

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    GPS在手機上的定位系統設計

    `<p><font face="Verdana"><strong>GPS在手機上
    發表于 12-18 15:09

    聲表面濾波器有用在手機上嗎?

    今天看到一篇文章,有提到聲表面濾波器可以用在智能手機上,我自己就有銷售聲表面濾波器,但是從培訓到現在都沒聽說聲表面濾波器可以用在手機上,那么聲表面濾波器到底能不能用在手機上呢?具體又是那一款呢?
    發表于 12-02 21:30

    LabVIEW2013能做成軟件后在手機上顯示儀器的界面么?

    如題:LabVIEW2013能做成軟件后在手機上顯示儀器的界面么?
    發表于 03-02 21:09

    請問怎么通過WIFI模塊在手機上顯示網頁

    我之前看過,論壇里一個壇友的文章,他通過WIFI模塊實現了手機訪問模塊網頁的功能,我現在使用的是ESP8266的模塊,現在也想實現這樣一個功能在手機上通過IP請求網站時能將我保存在開發板上的簡單網頁
    發表于 01-24 02:11

    藍牙模塊與安卓手機相連,串口助手發信息顯示在手機上是亂碼

    請問藍牙模塊與安卓手機相連 ,手機可以發數據到藍牙并顯示在電腦串口助手上 ,但是串口助手發信息就不能顯示在手機上就是亂碼 ,是哪里的問題啊?
    發表于 02-15 00:24

    如何用matlab進行gamma可能性分析?

    大神們,我在用matlab進行gamma可能性分析時,不知如何計算gamma值的SD SE,見笑了,實在沒查到資料,望了解的可以解答一下,多謝多謝!
    發表于 02-23 09:28

    在手機上采用USB傳輸高清視頻

    高清錄像作為他們的高端產品。在手機中整合高清視頻將會進一步體現其實用價值,因為它已不僅是一個數碼相機,還是一個數碼攝像機。把高清錄像放到手機會帶來新的問題:如何使高清視頻回放。在手機上直接回放視頻是很
    發表于 05-16 10:44

    PSOC5LP與低通濾波器進行硬件連接的可能性有多大?

    你好,我想用我的PSoC5LP板(CY8C55)做多個應用程序,我想知道與低通濾波器進行硬件連接的可能性,因為這些值被限制為C= 5PF-10PF和R=200K-1000 K,我們有四的可能性打破頻率值。有可能增加硬件連接來增加
    發表于 08-13 10:52

    存儲級內存取代NAND閃存的可能性分析

    存儲級內存(SCM)取代NAND閃存的可能性分析
    發表于 01-05 06:23

    怎么做到在手機上自主分析數據的?

    看很多人都說在手機上就能分析數據,還是從自己的立場出發去調整報表,針對分析自己關心的數據。這是怎么做到的?用什么數據分析工具實現的?用數據可視化工具制作的報表就可以在手機端自主分析。也就是上段提到
    發表于 04-13 10:00

    如何在手機上打開/啟動應用程序?

    您希望如何在手機上打開/啟動應用程序?您會手動啟動還是通過語音命令啟動它?
    發表于 05-04 08:56

    中興Axon 30 Ultra帶來手機多攝體驗的更多可能性

    的中興Axon 30 Ultra,就帶來了手機多攝體驗的更多可能性。 01? 簡約設計,輕薄質感 煥然一新的體驗,從外觀設計開始。中興Axon 30 Ultra以簡約線條勾勒出纖薄的輪廓,厚度僅為8mm,重量僅188g,握在手
    的頭像 發表于 06-09 15:20 ?2825次閱讀

    在手機上顯示帶有地震位置標記的地圖

    電子發燒友網站提供《在手機上顯示帶有地震位置標記的地圖.zip》資料免費下載
    發表于 06-20 10:58 ?0次下載
    <b class='flag-5'>在手機上</b>顯示帶有地震位置標記的地圖

    記憶黑板與智能手機或平板電腦同步的可能性與實現

    記憶黑板與智能手機或平板電腦同步的可能性與實現 隨著科技的不斷發展,人們對于信息傳遞和共享的方式也在不斷追求便捷和高效。記憶黑板作為一種傳統的信息展示和傳遞工具,在許多場合仍然發揮著重要作用。然而
    的頭像 發表于 12-27 15:30 ?644次閱讀

    怎么在手機上做電路仿真

    在手機上進行電路仿真,您可以使用一些專業的電路仿真應用。這些應用通常提供豐富的元器件庫、強大的仿真功能和直觀的圖形界面,使得在手機上進行電路設計和仿真變得方便而高效。
    的頭像 發表于 03-29 14:25 ?2199次閱讀
    三江| 百家乐官网黏土筹码| 辽中县| 什么棋牌游戏能赚钱| 华盛顿百家乐的玩法技巧和规则 | 网上百家乐官网假| 百家乐官网赌场导航| 有关百家乐官网玩家论坛| 澳门百家乐赌博技巧| 任你博百家乐官网现金网| 百家乐官网旺门打法| 百家乐官网怎么看大小| 百家乐官网怎么稳赢| 百家乐官网路纸下| 至尊百家乐官网娱乐| 百家乐官网平游戏| 百家乐有电脑游戏吗| 百家乐官网网上赌有作假吗| 百家乐官网永利娱乐平台| 3U百家乐官网的玩法技巧和规则 | 大发888娱乐场下载sampling id112| 大发888真人真钱赌博| 百家乐的奥秘| 锡林浩特市| 澳门百家乐官网单注下注| 百家乐赢钱密籍| 网页百家乐官网的玩法技巧和规则| 百家乐官网手机壳| 至尊百家乐娱乐网| 皇冠足球赔| bet365官方| 泰宁县| 百家乐官网客户端软件| 成都南偏西24度风水| 财神百家乐的玩法技巧和规则| 百乐彩| 太仆寺旗| 百家乐游戏出售| 大发888官方下载删除| 托里县| 网上百家乐心得|