RealmとSnappydbを比較しようとしています(これは、ベンチマークを見たい人のための私のレポです)。Sanppydb と比較して Realm では store-to-db 時間が非常に長いため、私のやり方が間違っていると思います。
ベンチマークは次の結果を示しています。画像でわかるように、Realm は Snappydb よりも約 100 ~ 200 倍遅くなります。
私がやっていることは、最初に 10,000 個のオブジェクトを作成してから、それらをデータベースに格納することです。したがって、私のコードでは、この方法で Booking オブジェクトを保存します (10,000 回反復する for ループがあります)。
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()
メソッドと 1 つのトランザクションを使用した新しい結果