微软官方MSDN原版Win10系统下载

现在位置: 首页  > 系统教程  > Linux教程

Linux系统Dalvik堆内存的管理与回收介绍

时间:2024-11-23 15:31:04   

大家好,今天Win10系统之家小编给大家分享「Linux系统Dalvik堆内存的管理与回收介绍」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!

信息系统管理与系统规划app系列软件最新版本下载

  Linux系统Dalvik虚拟机中可以对Android进行一些优化处理,而对堆内存的管理和回收是优化系统的重要手段。本文就来介绍一下Linux系统Dalvik堆内存的管理与回收。

  Android系统启动

  Android系统启动后,会有一个Zygote进程创建第一个Dalvik虚拟机,它只维护了一个堆。以后启动的所有应用程序进程是被Zygote进程fork出来的,并都持有一个自己的Dalvik虚拟机。在创建应用程序的过程中,Dalvik虚拟机采用COW策略复制Zygote进程的地址空间。

  COW策略:一开始的时候(未复制Zygote进程的地址空间的时候),应用程序进程和Zygote进程共享了同一个用来分配对象的堆。当Zygote进程或者应用程序进程对该堆进行写操作时,内核就会执行真正的拷贝操作,使得Zygote进程和应用程序进程分别拥有自己的一份拷贝,这就是所谓的COW。因为copy是十分耗时的,所以必须尽量避免copy或者尽量少的copy。

  为了实现这个目的,当创建第一个应用程序进程时,会将已经使用了的那部分堆内存划分为一部分,还没有使用的堆内存划分为另外一部分。前者就称为Zygote堆,后者就称为Active堆。这样只需把zygote堆中的内容复制给应用程序进程就可以了。以后无论是Zygote进程,还是应用程序进程,当它们需要分配对象的时候,都在Active堆上进行。这样就可以使得Zygote堆尽可能少地被执行写操作,因而就可以减少执行写时拷贝的操作。在Zygote堆里面分配的对象其实主要就是Zygote进程在启动过程中预加载的类、资源和对象了。这意味着这些预加载的类、资源和对象可以在Zygote进程和应用程序进程中做到长期共享。这样既能减少拷贝操作,还能减少对内存的需求。

  类似于JVM,Dalvik虚拟机也需要负责对堆内存中的对象进行管理工作,它使用的也是标记清除算法,但是细节上略有区别。

上一页12下一页 剩下全文

以上就是关于「Linux系统Dalvik堆内存的管理与回收介绍」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~

文章★来①自Win10系统之家,未经同意不得转载!

相关文章

  • Linux系统Dalvik堆内存的管理与回收介绍

    Linux系统Dalvik堆内存的管理与回收介绍


      Linux系统Dalvik虚拟机中可以对Android进行一些优化处理,而对堆内存的管理和回收是优化系统的重要手段。本文就来介绍一下Linux系统Dalvik堆内存的管理与回收。
      Android系统启动
      Android系统启动后,会有一个Zygote进程创建第一个Dalvik虚拟机,它只维护了一个堆。以后启动的所有应用程序进程是被Zygote进程fork出来的...
  • Linux系统中jenkins使用的简单介绍

    Linux系统中jenkins使用的简单介绍


      jenkins是一个开放的软件平台,在Linux系统中的软件平台也不少,但是jenkins一直是比较受欢迎的那一个。本文就来简单介绍一下Linux系统中jenkins安装配置和使用。
      安装jenkins
      首先保证系统中已经安装了jdk,最好是jdk1.5以上。
      http://jenkins-ci.org/下载本机环境相对应安装包
      win...
  • Linux系统中bzip2命令的语法参数介绍

    Linux系统中bzip2命令的语法参数介绍


      从bzip2这个Linux命令字面上看,它是以个跟压缩有关的命令。事实也确实如此,bzip2的功能就是用来压缩bz2文件。本文就来介绍一下Linux系统中bzip2命令的语法和参数。
      语法:bzip2[-cdfhkLstvVz][--repetitive-best][--repetitive-fast][-压缩等级][要压缩的文件]
      补充说明:bzip2采用新...
  • Linux系统NBMA和BMA的交换方式介绍

    Linux系统NBMA和BMA的交换方式介绍


      在Linux系统中有两中不同的交换方式,也就是NBMA和BMA。不要看着两种交换方式只是差了一个字母,但是确实完全不同,甚至互相对立机制。本文就来介绍一下Linux系统的这两种网络的交换方式。
      1.NBMA交换
      虽然大家都连接在一个链路上,但这并不意味着数据帧可以随意到达任何地方。NBMA网络中,控制权在交换机,端主机只能通过交换机到达目标端主机,也就是说,只...