欢迎光临
专注android技术,聚焦行业精粹,我们一直在努力

JVM与Android Studio配置的GMS算法优化方案

Google发布的Android studio 3.0已经出来好久了,虽然在编译效率上大大提高,但是在内存使用效率上还是不如人意,所以我们有必要使用JVM的知识,对Android Studio内存使用进行优化,在这之前,有必要研究一下,与Android studio相关的JVM相关的知识。
本文主要分下3个点:1)JVM 回收算法简介 2)idea系列配置JVM项的介绍

1)JVM 回收算法简介
JVM在内存处理上,历史上有3类算法,1 串行回收 2 并发回行 3 并行回收,
串行
程序们按一个队列,一个一个执行,适合单核CPU执行。
并发
一个并发程序是具备处理多个任务的能力。并发并不需要有多个CPU,单个CPU通过时间片的方式,不同时间片处理不同任务,可以让程序“看起来”是都在执行的。
并行
并行表示在同一个时间点,有多个任务都在进行当中。并行是需要多个CPU才可以完成的。如果说每一个CPU都在运行一个程序,那么4个CPU就可以让4个程序“并行”运算。

Java垃圾回收器
串行处理器
–Serial收集器:
用于新生代,单线程并Stop The World
一般用于单CPU的应用,设置-XX:+UseSerialGC,可以保证较高的吞吐率
–SerialOld收集器:
用于老年代,单线程。

并行收集器
–ParNew收集器
用于新生代,用户响应时间比较短,适用于server。是CMS默认的新生代收集器
–Parallel Scavenge收集器
用于新生代,吞吐量比较高,但是用户响应时间比较长,适用于后台。
–Parallel Old收集器
用于老年代,响应时间较长,吞吐量较大。适用于后台,和Parallel Scavenge配合使用。

并发收集器
–CMS(Concurrent Mark Sweep),可以对老年代进行并行的垃圾回收。值得注意的是,jdk6以前,如果老年代使用了CMS,那么新生代只能使用Serial或ParNew收集器。
–G1(Garbage First),并行和并发,降低Stop The World的时间

2)idea系列配置JVM项的介绍
Android studio属于idea公司系列之一,在idea系列出来前,开发者多数一直是使用Eclipse,Eclipse的特点是内存相对占用较少,所以使用的是串行内存回收算法来处理内存的回收,到了这几年,多核计算机的流行,并发成了程序提高性能的主要突破点,所以idea上使用了并行回收内存算法来处理内存,而并发的后果是,多个程序占用的内存,远远超过了eclipse使用的量。因此,idea公司使用了并发收集器,也就是上文采用的方式之一“ CMS(Concurrent Mark Sweep”,也就是旧生代使用CMS回收,新生代采用ParNew回收。下面列出所有IDEA产品可以加载的JVM项。

注,在站内下载区,已经提供相关文件,需要者可以直接从该区域下载AS的JVM配置文件

Android 3.0 启动脚本

赞(0) 打赏
未经允许不得转载:花花鞋 » JVM与Android Studio配置的GMS算法优化方案
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

国内精品Android技术社区

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏