@@ -49,7 +49,7 @@ Android Runtime同样也回管理内存及垃圾回收。
4949
5050
5151
52- 早期,Android智能手机并不像现在那么强大。一次大多数手机的RAM很少 ,有些甚至只有200MB。
52+ 早期,Android智能手机并不像现在那么强大。大多数手机的RAM很少 ,有些甚至只有200MB。
5353难怪第一个被称为Dalvik的Android Runtime的实现正是为了优化此参数:RAM的使用。
5454
5555因此,它没有在运行它之前将整个应用程序编译为机器代码,而是使用了称为Just In Time编译(简称JIT)的策略。
@@ -90,7 +90,7 @@ Android Runtime同样也回管理内存及垃圾回收。
9090
9191
9292
93- 这种方法极大地提高了运行时性能,因为运行本机机器代码甚至比及时编译快20倍 。
93+ 这种方法极大地提高了运行时性能,因为运行本机机器代码甚至比即时编译快20倍 。
9494
9595ART优点:
9696
@@ -101,19 +101,19 @@ ART优点:
101101
102102ART缺点:
103103
104- - 更大的存储空间占用,可能会增加10%-20%。
104+ - 更大的存储空间占用,可能会增加10%-20%。字节码预先编译成机器码并存储到本地,机器码需要的存储空间更大。
105105- 更长的应用安装时间,因为下载APK后,整个应用程序都需要转换为机器代码,而且由于所有应用程序都需要重新优化,因此执行系统更新还需要更长的时间。
106106- Android L中的ART使用的内存比Dalvik多得多。
107107
108108
109109
110110对于应用程序中经常运行的部分来说,对其进行预编译显然是有回报的,但现实是,用户很少打开应用程序的大多数部分,而对整个应用程序进行预编译几乎也没有回报。
111111
112- 这就是为什么在Android N中,Just In Time编译与称为配置文件引导的编译 (profile-guided complication)一起被引入到Android Runtime的原因。
112+ 这就是为什么在Android N中,Just In Time编译与称为配置文件引导编译 (profile-guided complication)一起被引入到Android Runtime的原因。
113113
114114### Profile-guided compilation(Android N)
115115
116- 概要文件引导的编译是一种策略 ,可以在运行Android应用程序时不断提高其性能。默认情况下,应用程序使用即时编译策略进行编译,但是当ART检测到某些方法“很热”时 ,这意味着它们经常运行,ART可以预编译并缓存这些方法以获得最佳性能。
116+ 配置文件引导编译是一种策略 ,可以在运行Android应用程序时不断提高其性能。默认情况下,应用程序使用即时编译策略进行编译,但是当ART检测到某些热点功能时 ,这意味着它们经常运行,ART可以预编译并缓存这些方法以获得最佳性能。
117117
118118![ ] ( https://raw.githubusercontent.com/CharonChui/Pictures/master/art_profile_guide.png )
119119
@@ -123,7 +123,7 @@ ART缺点:
123123
124124
125125
126- 这种方法的唯一缺点是,为了获取配置文件数据并预编译常用的方法和类,用户必须实际使用应用程序。这意味着该应用程序的一些首次使用可能会有点慢,因为在这种情况下,将仅使用“及时”编译 。
126+ 这种方法的唯一缺点是,为了获取配置文件数据并预编译常用的方法和类,用户必须实际使用应用程序。这意味着该应用程序的一些首次使用可能会有点慢,因为在这种情况下,将仅使用即时编译 。
127127
128128这就是为什么要改善在Android P中的初始用户体验的原因,Google在云中引入了个人资料。
129129
@@ -158,4 +158,4 @@ ART缺点:
158158---
159159
160160- 邮箱 :charon.chui@gmail.com
161- - Good Luck!
161+ - Good Luck!
0 commit comments