gpt4 book ai didi

kotlin - 为什么使用 bylazy 会使我的 Kotlin 代码变慢

转载 作者:行者123 更新时间:2023-12-04 00:13:51 25 4
gpt4 key购买 nike

我有一些代码可以生成大量小型数据类的实例。当我向该类添加一个惰性属性时,我注意到即使从未访问过惰性属性,创建此类的实例也会变得慢得多。怎么会这样?我期待如果从不访问惰性属性不会有任何区别。有什么方法可以在不影响这种性能的情况下使用惰性属性?

这是一个最小的例子:

import kotlin.system.measureTimeMillis

class LazyTest(val x: Int) {
val test: Int by lazy { 9 }
}

fun main(){
val time = measureTimeMillis { List(500_000) {LazyTest(it) }}
println("time: $time")
}

on play.kotlinlang.org 上运行时它需要 500-600 毫秒,如果我注释掉 val test: Int bylazy { 9 } 行,它反而需要大约 40 毫秒来运行。

最佳答案

使用 bylazy 创建第二个对象来“保持惰性”,实现惰性计算。这很可能是放缓的原因。

关于kotlin - 为什么使用 bylazy 会使我的 Kotlin 代码变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65543747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com