第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

關(guān)于應(yīng)用Kotlin后的編譯速度問(wèn)題

標(biāo)簽:
Android

2017年 Kotlin 被 Google 钦定为 Android 开发官方语言之一后,便如火如荼。很多团队开始应用了Kotlin,可谓是收益良多,可是也有一些问题,一个比较明显的就是Kotlin应用后编译速度会比较慢。这种感觉就像我们从Eclipse迁移到Android Studio变慢差不多。本文将尝试介绍一些方法来改善这一问题。

关于项目编译慢有很多原因,在Android项目中,通常会和Kotlin和Gradle有关系。首先我们通过一组图就能发现这其中的问题。其中

  • 红色代表Java,青色代表Kotlin

  • X轴代表编译次数数据,Y轴达标消耗的时间

  • Java的项目和Kotlin的项目实现功能一致,无其他额外差别

下图的测试为10次连续的未修改的编译,两个项目均没有启动Gradle daemon。可以看出Kotlin耗时确实要耗时多一些。

https://7jpolu.com1.z0.glb.clouddn.com/Ten_consecutive_clean_builds_without_the_Gradle_daemon.png

接下来我们尝试开启Gradle daemon,下图即为新的测试数据(连续10次开启gradle daemon编译)。

我们可以发现开启gradle daemon后,Java的编译耗时和Kotlin明显减少,但是总的来看,Kotlin还是要耗时一些。http://7jpolu.com1.z0.glb.clouddn.com/TenconsecutivecleanbuildswiththeGradledaemonrunning.png

Kotlin在1.0.2后,增加了增量编译,那么我们看一下开启增量编译后的效果呢,如下图(启用增量编译后,连续10次没有文件变化的编译)

我们可以发现,除了第一次编译差距大一些的情况外(因为增量编译对第一次编译不起作用),后续的Java和Kotlin编译时间几乎一样,甚至Kotlin耗时更少。https://7jpolu.com1.z0.glb.clouddn.com/TenXconsecutiveincrementalbuildswithnofileschanged.png

一个文件不修改的增量编译现实中很少,很多时候我们都会进行文件的修改。当我们尝试修改一个独立的文件,再次执行测试,看一看有什么效果,如下图。

真的不可思议,Kotlin耗时这下已经和Java拉开了更大的差距,表现的更加优秀。

http://7jpolu.com1.z0.glb.clouddn.com/TenYconsecutive_incrementalbuildswithoneisolatedfilechanged.png

然而项目中,我们的修改往往可能是针对一块核心的代码,很多的地方都调用它,当我们在尝试修改一个核心代码,连续10次进行测试(kotlin开启增量编译),数据又是如何呢?

如下图所示,Kotlin表现依然优秀于Java。

http://7jpolu.com1.z0.glb.clouddn.com/Tenconsecutiveincrementalbuildswithonecorefilechanged.png

通过上面的图例说明,我们发现其实Kotlin在某些情况下编译并不慢。同样我们也发现了一些加速Kotlin编译的方法,即

  • 开启gradle daemon,即在~/.gradle/gradle.properties文件中,增加org.gradle.daemon=true

  • 在项目的gradle.properties中增加kotlin.incremental=true 开启kotlin的增量编译。

  • 尝试使用最新的kotlin版本,增加编译速度是Kotlin团队一直努力的目标

  • 更多的加速编译的方法,请参考一些关于加速Gradle构建的个人经验

引用资料

原文链接: https://droidyue.com/blog/2018/01/31/how-to-speed-up-kotlin-compilation/


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消