天天看點

rk3399 Android7.1編譯設定交換分區解決記憶體不足問題

1 系統配置

桌上型電腦4核4線程 12G記憶體:設定vmware 記憶體8G cpu 1*4,

筆記本6核12線程 16G記憶體:設定vmware 記憶體12G cpu 1*6

2 添加交換分區

free -m

              總計         已用        空閑      共享    緩沖/緩存    可用

記憶體:        7933         700        4531           3        2701        6935

交換:        2047           0        2047

新增加8G交換分區

su root 切換到root使用者

dd if=/dev/zero of=/home/swapfile bs=1M count=8192 建立交換分區的檔案

mkswap /home/swapfile  設定交換分區檔案,建立swap的檔案系統

swapon  /home/swapfile 啟用swap檔案

設定開機啟動,在檔案/etc/fstab中添加

/home/swapfile swap swap defaults 0 0

2.1 RK3399-JD4-Android7.1\prebuilts\sdk\tools\jack-admin需要修改(16G記憶體以下應該都要改,我的VM配置設定12G都會報錯)實測,這時設定成Xmx4096m還會加快編譯速度

#JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"

  howard added

      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"

3 再次測試

Free -m

              總計         已用        空閑      共享    緩沖/緩存    可用

記憶體:        7933         708         126           3        7099        6928

交換:       10239           0       10239

4 重新開機測試

Free -m

              總計         已用        空閑      共享    緩沖/緩存    可用

記憶體:        7933         646        6618           3         668        7027

交換:       10239           0       10239

對比編譯測試

1 254伺服器(12核20線程 64G) 17-20分鐘左右編譯完

2 14 伺服器 (4核4線程16G) 30-35分鐘編譯完

3 桌上型電腦Vmware(4核4線程 8G)    第一次clone下來後編譯145分鐘,第一次編譯VMware及pc主機會比較卡,後面再編譯就好很多了,第二次編譯花了55分鐘。

4 筆記本Vmware(系統配置:6核12線程 12G;vm配置設定每個處理器的核心數量配置設定為6,如果配置設定12,效果同6沒差別,還會加重cpu運作負荷,是以vm這裡配成核數會比較好;記憶體配置設定10G)編譯花了38分鐘,基本雙系統一點不卡,記憶體配置設定可提高到12G,編譯時間大概能減小6分鐘左右

[email protected]:~$ free

              總計         已用        空閑      共享    緩沖/緩存    可用

記憶體:    10176432     2053196     4694576        7828     3428660     7804656

交換:    10485752           0    10485752

14 伺服器記憶體

[email protected]:~$ free

              total        used        free      shared  buff/cache   available

Mem:       16330964      648188    12101152       43740     3581624    15272820

Swap:        999420           0      999420

254 伺服器記憶體

[email protected]:~$ free

              total        used        free      shared  buff/cache   available

Mem:       65398968    11466332    33023216        3488    20909420    53227372

Swap:       8388604           0     8388604

實測,編譯android7.1記憶體配置需8G以上(最好16G以上)才能正常編譯,(小于8G可能會卡死,實測6G無法正常編譯),另需設定交換記憶體,交換記憶體應該增加1G就夠了,為防止記憶體不足,我增加到了8G.