Corda在various operations之前流动检查点。如何编写流以最小化检查点大小并改善流运行时间?
答案 0 :(得分:1)
通过保持最小的调用堆栈来减少检查点的大小,因为执行堆栈中范围内的所有内容都将被序列化到检查点中。
减少调用堆栈的一种方法是将没有挂在未标记为@Suspendable
的辅助函数中的所有操作排除在外。
例如,假设我们写:
@Suspendable
fun asd() {
val something = computeSomething()
val somethingElse = lol(something)
sendAndReceive(bla)
}
在这种情况下,something
和somethingElse
将位于检查点中。因此,我们应该这样写:
@Suspendable
fun asd() {
helper()
sendAndReceive(bla)
}
fun helper() {
val something = computeSomething()
val somethingElse = lol(something)
}
something
和somethingElse
将不在检查点中。