常量折叠
编译器优化过程中的一个重要步骤,常量折叠,用来在编译阶段计算常量,例如下例中b在编译阶段就计算出来了30,而并不是运行时阶段
val a = 10
val b = a + 20
对应文件:
org.jetbrains.kotlin.javac.resolve.ConstantEvaluator
org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator
函数内联 Inlining
将方法调用处的代码直接替换为被调用方法的内容,减少方法调用的开销
循环优化 Loop Optimization
对循环进行优化,包括循环展开、循环向量化,提高循环效率
逃逸分析 Escape Analysis
分析对象的生命周期,判断对象是否套一处方法的作用于,从而进行栈分配或者栈上替换,减少堆内存的分配和回收开销
死代码消除 Dead Code Elimination
移除不会被执行的代码,减少程序的体积和执行开销
数据流分析 Data Flow Analysis
分析程序中的数据流关系,进行各种优化,基于值的替换、复制传播等
标签:开销,调用,常量,Kotlin,源码,优化,循环 From: https://www.cnblogs.com/terrency/p/18036938