你的位置:首页 > 软件开发 > 操作系统 > 单机搭建Android开发环境(三)

单机搭建Android开发环境(三)

发布时间:2016-03-14 23:00:13
单机搭建Android开发环境,第一篇重点介绍了如何优化Windows 7系统,以提高开发主机的性能并延长SSD的使用寿命。第二篇重点介绍了基于VMWare安装64位版的Ubuntu 12.04,并安装sshd、vim和samba。本篇将重点介绍VMWare配置的优化以及Ubun ...

单机搭建Android开发环境,第一篇重点介绍了如何优化Windows 7系统,以提高开发主机的性能并延长SSD的使用寿命。第二篇重点介绍了基于VMWare安装64位版的Ubuntu 12.04,并安装sshd、vim和samba。本篇将重点介绍VMWare配置的优化以及Ubuntu 12.04系统的优化,进一步减少对SSD无谓的写操作并提高Ubuntu的开机启动速度和运行性能。最终优化的结果,在SSD上启动Ubuntu 12.04,大概不到9秒。

首先通过修改*.vmx配置文件,取消生成日志,减少对SSD的写操作,

  logging = "FALSE"

修改*.vmx配置文件,禁用硬盘内存文件(*.vmem),减少对SSD的写操作,同时提高虚拟机的性能,

  mainMem.useNamedFile = "FALSE"

其他有关提高VMWare性能的配置如下:

  snapshot.disabled = "TRUE"

  MemTrimRate=0

  sched.mem.pshare.enable = "FALSE"

  sched.mem.maxmemctl=0

  MemAllowAutoScaleDown = "FALSE"

  mem.ShareScanTotal=0

  mem.ShareScanVM=0

  mem.ShareScanThreshold=4096

  prefvmx.minVmMemPct = "100"

  prefvmx.useRecommendedLockedMemSize = "TRUE"

  mainMem.partialLazySave = "FALSE"

  mainMem.partialLazyRestore = "FALSE"

  priority.grabbed = "high"

  priority.ungrabbed = "normal"

以上优化选项仅供参考,效果如何,以实测为准。

通过dmesg命令查看系统启动信息,可以发现几处有明显的停顿,其中第一处如下,

  [ 3.572126] ACPI: Interpreter enabled

  [ 3.572260] ACPI: (supports S0 S1 S4 S5)

  [ 3.572530] ACPI: Using IOAPIC for interrupt routing

  [ 14.383799] ACPI: No dock devices found.

此处停顿了大概10秒,可通过修改*.vmx文件如下属性做优化,

  mem.hotadd = "FALSE"

第二处如下,

  [ 5.760334] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)

  [ 5.998530] usb 2-2.1: new full-speed USB device number 4 using uhci_hcd

  [ 11.410208] ADDRCONF.NETDEV_UP): eth0: link is not ready

  [ 11.447128] udevd[470]: starting version 175

  [ 11.651791] Adding 3905532k swap on /dev/sda1. Priority:-1 extents:1 across:3905532k

此处停顿了大概5秒,跟eth0有关,可以通过如下步骤进行优化,

a)查找网卡对应的模块名称,执行命令,

  lspci -v

可以看到模块名称为e1000,Ethernet controller详细信息如下,

  02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

  Subsystem: VMware PRO/1000 MT Single Port Adapter

  Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19

  Memory at fd5c0000 (64-bit, non-prefetchable) [size=128K]

  Memory at fdff0000 (64-bit, non-prefetchable) [size=64K]

  I/O ports at 2000 [size=64]

  [virtual] Expansion ROM at e7b00000 [disabled] [size=64K]

  Capabilities: <access denied>

  Kernel driver in use: e1000

  Kernel modules: e1000

b)增加blacklist,执行如下命令,

  echo "blacklist e1000" | sudo tee /etc/modprobe.d/blacklist-ethernet.conf

c)修改文件/etc/rc.local

  sudo vim /etc/rc.local

在exit 0前一行增加

  modprobe e1000

  exit 0

d)修改超时时间

  sudo vim /etc/init/failsafe.conf

# The point here is to wait for 2 minutes before forcibly booting

# the system. Anything that is in an "or" condition with 'started

# failsafe' in rc-sysinit deserves consideration for mentioning in

# these messages. currently only static-network-up counts for that.

 

# sleep 20

 

# Plymouth errors should not stop the script because we *must* reach

# the end of this script to avoid letting the system spin forever

# waiting on it to start.

$PLYMOUTH message --text="Waiting for network configuration..." || :

# sleep 40

 

$PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :

# sleep 59

$PLYMOUTH message --text="Booting system without full network configuration..." || :

注释掉所有的sleep,并保存。

e)重新创建initrd

  sudo dpkg-reconfigure linux-image-$(uname -r)

 执行命令

  sudo reboot

重启Ubuntu,如下所示处仍有停顿,因IPv6而起,

  [ 22.993369] eth0: no IPv6 routers present

修改配置文件/etc/sysctl.conf

  sudo vim /etc/sysctl.conf

增加如下设置禁用ipv6

  net.ipv6.conf.all.disable_ipv6 = 1

  net.ipv6.conf.default.disable_ipv6 = 1

  net.ipv6.conf.lo.disable_ipv6 = 1

经过以上修改,重新启动Ubuntu,dmesg信息如下,系统在8S内启动完成。

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:单机搭建Android开发环境(三)

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录