Code前端首页关于Code前端联系我们

kotlin的装配速度已经过优化,以节省时间, 996

terry 2年前 (2023-09-23) 阅读数 68 #移动小程序

我对kotlin的翻译速度一直不满意,但我可以应付。我最近开始了一个新项目,很多同事都来自Java。他们实在受不了,所以优化翻译速度就变得非常重要。

优化前后对比

优化前我们的完整翻译时间是2分21秒

kotlin 编译速度优化,省下时间不再996

当然,耗时的任务都在运行任务中:分配的任务你看。如上,主要是capt绑定的汇编和kotlin代码的汇编,最终转化为ClassedWithXXX。

优化后全翻译时间31s

kotlin 编译速度优化,省下时间不再996

优化后增量翻译时间15s

kotlin 编译速度优化,省下时间不再996

kotlin 编译速度优化,省下时间不再996

优化步骤:

1。优化gradle配置:

在项目根目录创建文件

  1. //启用gradle并行编译,启用daemon,调整jvm内存大小
  2. org.gradle.daemon=truefiguremand.configureconorg❝ =true
  3. org.gradle .parallel=true
  4. org.gradle。 jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
  5. //启用gradle缓存
  6. org.gradle.caching=enBruecheandroid
  7. //启用kotlin的增量并行收集
  8. kotlin.incremental=true
  9. kotlin.incremental.java=true
  10. kotlin.incremental.js=trued.truechingenutin
  11. kotlin.parallel.tasks.in.project=true true //启用kotlin并行翻译incremental.apt=true //增量翻译版本及以后支持
  12. kapt.include.compile.classpath=false //避免 kapt 如果 kapt 所基于的内容没有改变,则编译后的内容完全被复用,这样可以节省时间: app:kaptGenerateStubsDebug 在 Kotli 的上图中

中上面的配置,我们首先调整了gradle配置,然后启用了缓存和kotlin和capt。

如果项目中使用了kapt,请使用最新的kapt版本。在撰写本文时,Kapt 的最新版本是1.3.31

2。优化应用程序

1。在项目的应用程序目录中,在文件 file:/// 中编辑 如果将其用于 kapt,请添加以下选项

  • kapt {
  • usebuildcache = true
  • javacoptions { ( option "-xmaxerrs") “,500)}}? 8
  • }
  • }
  • 2。其他不太重要的优化似乎对时间没有特别大的影响

    优化版本号配置。如果是debug版本,不要使用动态版本号

    1. //原始配置
    2. defaultConfig {
    3. ...
    4. minSdkVersion 19dk 19dkion versionCode gitVersionCode()
    5. versionName currentName() ...
    6. }
    7. / /编辑为
    8. defaultConfig {❀ion 19... targetSdkVersion 28
    9. versionCode 1
    10. 版本名称“”
    11. . ..
    12. }
    13. 应用选项。所有 { 变体 ->
    14. ...
    15. 如果(variant.buildType.name == "release") {
    16. versionName = currentName()
    17. versionCode = gitVersionCode()
    18. }
    19. }❀ }❀ 上面的 versionCode 配置使用了 git - 作为版本号的发货数量。在本地调试模式下,实际上最好对版本号进行硬编码。如果版本号发生变化,则必须重新创建 Manifest 文件和完整编译的应用程序,从而导致 InstantRun 无法使用。 (PS 实际上我们从未使用过 InstantRun)。因此将其更改为硬编码的版本号,然后使用 applicationVariants 中的正常版本号来确定它是否是发行版。然后还有一点就是,在使用依赖版本的时候,尽量不要使用带+号的版本依赖。使用固定版本号速度更快。

      希望大家节省下来的组装时间可以用来陪伴家人。享受吧~

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门