我想与 Androidx Room 进行一笔巨额交易,如下所示:
@Transaction
fun addGeneratedRows() {
for (i in 0 until 5_000_000) {
addItem(generateRowWhichTakesUpALotOfMemory())
}
}
@Insert fun addItem(itm: MyLargeRow)
现在,我担心如果 Room 在将整个事务写入数据库之前将其存储在 RAM 中,这可能会导致内存不足错误。
但我可以想象它可能会将行缓冲到磁盘上,从而允许垃圾收集器在
for
的传递之间清除对象,因为它们是动态生成的。
嗯,会吗?我似乎找不到它的来源,但也没有找到它绝对不存在的来源。