gpt4 book ai didi

android - 如何在 Realm 中正确添加 100 万个项目?

转载 作者:太空狗 更新时间:2023-10-29 15:30:40 25 4
gpt4 key购买 nike

我想在原生 SQLiteDatabaseRealm 之间进行选择以处理大量数据。

为了进行基准测试,我在存储中添加了 100 万个产品实体:

{id:integer,sku:string,name:string,data_creating:string}

使用 SQLiteDatabase 在我的设备上花费了将近 1 分 34 秒。

使用 Realm 需要 10 分钟以上。

我的代码是:

Realm realm = Realm.getInstance(getApplicationContext());
realm.beginTransaction();
for(int i = 0 ; i < 1000000;i++){
Product product = realm.createObject(Product.class);
product.setId(i+1);
product.setName("Product_"+i);
product.setSku("SKU__"+i);
product.setDateCreated(new Date());
}
realm.commitTransaction();

如何改进我的代码以获得更好的时间性能?

最佳答案

最初的问题在 Realm 中引起了讨论,我们最终在 insert 中添加了一个更快的方法。对象。创建和插入 1 个 mio 对象的代码现在可以写成:

final Product product = new Product();
final Date date = new Date();
try(Realm realm = Realm.getDefaultInstance()) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
for(int i = 0 ; i < 1000000; i++){
product.setId(i+1);
product.setName("Product_"+i);
product.setSku("SKU__"+i);
product.setDateCreated(date);
realm.insert(product);
}
}
});
}

关于android - 如何在 Realm 中正确添加 100 万个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214236/

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