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.