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

为什么Kotlin中Iterable.sum()性能远低于手动for循环求和?

Kotlin中Iterable.sum()与手动for循环的性能惊人差异

最近在做性能测试时,我意外发现Kotlin里Iterable.sum()和手动编写的for循环求和之间,存在着大到离谱的性能差距——前者的运行速度居然比后者慢了足足10倍!

测试代码

我用这段代码来对比两者的性能表现:

import kotlin.system.measureTimeMillis
fun main(args: Array<String>) {
    var sink = 0;
    repeat(5) {
        println(measureTimeMillis {
            var sum = 0
            for (i in 1..10_000_000) {
                sum += i
            }
            sink += sum
        })
    }
    repeat(5) {
        println(measureTimeMillis {
            sink += (1..10_000_000).sum()
        })
    }
}

测试结果

我分别重复执行了5次手动循环求和和5次Iterable.sum()求和,结果非常一致:手动for循环的耗时明显更低,Iterable.sum()的运行速度慢了将近10倍,这个差异完全超出了我的预期。

内容的提问来源于stack exchange,提问作者Michał Šrajer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:35:48