You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何自定义Kotlin indices实现比官方实现性能更优?

为何自定义与官方逻辑一致的CharSequence.indices能提升执行速度?

我测试了一段Kotlin代码实现自定义空白判断方法:

fun CharSequence.isMyBlank(): Boolean {
    return indices.all { this[it].isWhitespace() }
}

用以下测试代码验证执行效率:

@Test
fun testing() {
    val timeUsed = measureNanoTime {
        repeat(1000) {
            "     ".isMyBlank()
        }
    }
    println(timeUsed)
}

测试结果显示,这段代码耗时约5.6毫秒。

但当我在代码中自定义了一个与Kotlin官方逻辑完全一致的indices属性后:

fun CharSequence.isMyBlank(): Boolean {
    return indices.all { this[it].isWhitespace() }
}

public val CharSequence.indices: IntRange
    get() = 0..length - 1

运行相同测试代码,耗时稳定在约2毫秒。

对比后发现,我自定义的indices属性和Kotlin官方提供的实现逻辑完全一致:

public val CharSequence.indices: IntRange
    get() = 0..length - 1

为什么自定义实现会让执行速度更快?


内容的提问来源于stack exchange,提问作者Elye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:55:57