我正在尝试将Realm与Snappydb进行比较(对于那些想要查看基准测试的人来说,这是我的仓库)。我想我的方法是错误的,因为与 Sanppydb 相比,存储到数据库的时间在 Realm 中需要很长时间。
基准测试显示以下结果。如图所示,Realm 比 Snappydb 慢 100-200 倍左右。
我正在做的是首先创建 10,000 个对象,然后将它们存储到数据库中。因此,在我的代码中,我以这种方式存储了一个 Booking 对象(有一个 for 循环迭代 10,000 次):
public void storeBooking(final Booking booking) {
mRealm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Booking realmBooking = realm.createObject(Booking.class);
realmBooking.setId(booking.getId());
realmBooking.setCode(booking.getCode());
realmBooking.setFareLowerBound(booking.getFareLowerBound());
realmBooking.setFareUpperBound(booking.getFareUpperBound());
realmBooking.setPhoneNumber(booking.getPhoneNumber());
realmBooking.setPickUpTime(booking.getPickUpTime());
realmBooking.setRequestedTaxiTypeName(booking.getRequestedTaxiTypeName());
realmBooking.setTaxiTypeId(booking.getTaxiTypeId());
}
});
}
更新
这是用于存储 Booking 对象的 Snappydb 方法。
public void storeBooking(final String key, final Booking booking) {
try {
mSnappyDb.put(key, booking);
} catch (SnappydbException e) {
e.printStackTrace();
}
}
更新
insertOrUpdate()
使用方法和一笔交易的新结果