wubi安装ubuntu后,终端输入free -m可以查到如下信息:

             total       used       free     shared    buffers     cached
Mem: 1944 1801 143 0 557 706
-/+ buffers/cache: 536 1407
Swap: 255 7 248

也即内存为2G,虚拟内存为256M,这太小了尤其是编译android源码的时候。因此将其增加到1G大小。具体步骤是:

1,新建/swap文件夹。然后cd进去,终端输入:sudo dd if=/dev/zero of=swapfile bs=1024 count=1000000

sudo dd if=/dev/zero of=swapfile bs=1024 count=1000000

最后的count就是虚拟内存的大小,后面有6个0,前面是1,表示1G. 坑爹的文档http://www.hx95.com/Article/Tech/201205/55661.html后面只有5个0还说表示1G. 稍等约1分钟看到如下信息:

记录了1000000+0 的读入
记录了1000000+0 的写出
1024000000字节(1.0 GB)已复制,27.2124 秒,37.6 MB/秒

2,这个时候在swap目录下就生成了swapfile文件。终端输入:du -h swapfile 可以查看生成的文件swapfile大小为977M.

yan@ubuntu:/swap$ du -h swapfile
977M swapfile

约等于1G.

接下来需要将swapfile转换成Swap文件,终端输入:sudo mkswap -f  swapfile  (mkswap是命令,后面的swapfile是swap文件夹下新生成的文件名字)

yan@ubuntu:/swap$ sudo mkswap -f swapfile
Setting up swapspace version 1, size = 999996 KiB
no label, UUID=a1363520-df39-4cdf-9e99-198fdf1eb17c

3,
激活swap文件

终端输入:sudo swapon swapfile(swapon是命令,swapfile是文件名字)

然后再输入 free -m可以看到:

yan@ubuntu:/swap$ free -m
total used free shared buffers cached
Mem: 1944 1808 135 0 511 758
-/+ buffers/cache: 538 1405
Swap: 1232 7 1224

Swap的大小1232 = 255(原来的) + 977 (新增加的)

如果要修改或者删除这个swapfile文件,需要先卸载这个swapfile。进入到swap目录,然后终端输入:sudo sawpoff swapfile,这就卸载了。swapfile文件就可以删除了,否则会提示正在使用或忙 无法删除。

如果要一直保持这个新增的swap,通过切换到root,gedit /etc/fstab, 在里面增加一句:/swap/swapfile none swap defaults 0 0 。关于这句话,参考1的命令是/swap/swapfile none swap defaults 0 0,参考2的命令/swap/swapfile /swap swap defaults 0 0。个人觉的第二个参数表示原来系统的swap文件夹,如果原系统没有swap文件夹,则用参考1里的命令。如果原系统本来就有/swap文件夹了,也即本来就有swap空间然后又新增加了一个,就用参考2的命令。 Ubuntu12.04上原本没有/swap文件夹,因此用参考1的命令。

参考:1,http://blog.csdn.net/mznewfacer/article/details/7334592

2,http://www.linuxidc.com/Linux/2010-09/28915.htm

另外,注意上面新建swap使用后,现有swap是两者之和。http://www.blogjava.net/zygcs/archive/2011/09/02/357845.html这里的方法大同小异,只不过是先cd /host/ubuntu/disks/  可以看到有个swap.disk, 利用du -h swap.disk查看大小为255M,然后sudo swapoff swap.disk取消使用这个系统自带的交换空间。然后删除掉,通过以下步骤:

4. sudo dd if=/dev/zero of=swap.disk bs=1M count=1k (创建1G的swap, 这步比较慢)
5. sudo mkswap -f swap.disk
6. sudo swapon /host/ubuntu/disks/swap.disk (这步更慢,大概1分钟不到)

这是在/host/ubuntu/disks/目录下创建的,名字为swap.disk. 本质是一样的。 再就是创建swap时大小是bs*count,如果bs=1M 则count =1k表示1G,如果bs=1024, count=1000000 表示1G,我觉的前者更精确。

接下来是优化swap的使用参数,linux里有个参数swappiness。当值为0时最大限度的使用物理内存,物理内存使用完后再使用swap内存。为100时,最大限度的使用swap,并将内存中的数据也要搬到swap里处理,这是两个极端。默认的参数是60,根据这里将其改为10较优。步骤如下:

1,查看当前的swappiness

终端输入:cat  /proc/sys/vm/swappiness

2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10
但是这只是临时性的修改,在你重启系统后会恢复默认的60,所以,还要做一步:
$ sudo gedit /etc/sysctl.conf
在这个文档的最后加上这样一行:
vm.swappiness=10
然后保存,重启。ok,你的设置就生效了。你会发现,现在乌斑兔儿跑得更快了!

wubi安装ubuntu后,增加swap大小,优化swap的使用参数-----------让ubuntu健步如飞,为编译android源码准备的更多相关文章

  1. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  2. Ubuntu编译Android源码过程中的空间不足解决方法

    Android源码一般几十G,就拿Android5.0来说,下载下来大概也有44G左右,和编译产生的文件以及Ubuntu系统占用的空间加起来,源码双倍的空间都不够有.编译源码前能分配足够的空间再好不过 ...

  3. 【转】在Ubuntu下编译Android源码并运行Emulator

    原文网址:http://www.mcuos.com/thread-4553-1-1.html 建立编译环境 1.在VirtualBox上安装Ubuntu 2.安装JDK   $ sudo apt-ge ...

  4. 【转】ubuntu 11.10(32位系统)下编译android源码

    原文网址:http://www.cnblogs.com/dwayne/archive/2011/11/16/2251734.html 本文介绍在ubuntu 11.10系统下编译android 2.3 ...

  5. ubuntu 编译android 源码笔记

    已经验证,可以编译成功.过程中会碰到一些编译错误,安装好依赖环境,可以解决. 1.splite压缩包的合并,解压缩,md5验证 http://pan.baidu.com/s/1bnG1NtX kitk ...

  6. ubuntu 编译android源码

    1.https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/                                   清华大学Android 镜像使用 ...

  7. Ubuntu编译Android源码步骤

    Android4.4源码编译 需要准备以下文件: 源码包名:x4412_kitkat_rtm.tar.bz2 Jdk版本为jdk1.6.0_27 gcc 4.4 g++ 4.4 第一步:安装Ubunt ...

  8. Ubuntu(64位)编译Android源码常见错误解决办法

    2013年07月10日 14:47:27 阅读数:1239 错误: /usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file ...

  9. 【转】如何定制android源码的编译选项 & 后期安装? ---- 不错

    原文网址:http://blog.sina.com.cn/s/blog_3e3fcadd0100z3o9.html Android编译过程比较长,配置起来也很麻烦.现仅就工作遇到的问题做个总结.所用硬 ...

随机推荐

  1. s2sh三大框架整合过程(仅供参考)

    三大框架顾名思义就是非常有名的Struts2 ,Hibernate,Spring, 框架整合的方法很多,现在我写一个非常简单的整合过程,相信大家一看就会! 这里使用的struts-2.2.1.1.hi ...

  2. java ResultSet 结果集处理 createStatement() 里参数的意义(第一弹)

    createStatement(int   resultSetType,int  resultSetConcurrency)参数一:结果集类型可取值:  1.ResultSet.TYPE_FORWOR ...

  3. Installshield脚本拷贝文件常见问题汇总

    原文:Installshield脚本拷贝文件常见问题汇总 很多朋友经常来问:为什么我用CopyFile/XCopyFile函数拷贝文件无效?引起这种情况的原因有很多,今天略微总结了一下,欢迎各位朋友跟 ...

  4. Java程序单元测试工具对比——Parasoft Jtest与Junit

    Web应用程序开发中,面向对象的Java语言占了不少的比重.对于Java应用程序的测试方法或方式多种多样,比较典型的是程序员自己来完成程序测试中的一个部分——单元测试. 之前,慧都资讯提到单元测试是程 ...

  5. C#使用COM搜索本地word文档关键字

    /// <summary> /// 检索根目录下的子目录及其所有文件,并在datagridview中显示文档名称及路径--递归调用 /// </summary> /// < ...

  6. C# 如何生成CHM帮助文件

    原文:C# 如何生成CHM帮助文件 前一段时间应公司要求,让我开发一个数据库字段信息CHM帮助文件生成软件.结果当时我就二了,这个东西我只用过,不知道咋做啊.没想到老大很随意说一句:"没事, ...

  7. C#用Open与Add方法打开word文档的区别

    C#打开word文档常用有两种方法:Add与Open. Microsoft.Office.Interop.Word._Document doc = (Document)appWord.Document ...

  8. 在PHP中连接数据库时获取最后的一个ID

    在SQL中获取最后的一个id  只需要加上where条件对id进行排序就可以了 但是在PHP中  有一种最新的方法  使用mysql_insert_id();就可以获得最大的id  .

  9. 实时预览的在线 Markdown 编辑器 - Markdoc

    实时预览的在线 Markdown 编辑器 - Markdoc 最近组内需要为一些项目和系统写文档,发表在公司内的文档平台上,这个平台并不支持markdown,所以打算做一个在线markdown编辑器, ...

  10. TDD中的单元测试

    TDD中的单元测试写多少才够?   测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面.但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程 ...