Я пытаюсь сравнить Realm с Snappydb (Это мое репо для тех, кто хотел бы взглянуть на бенчмарк). Я предполагаю, что мой путь неправильный, так как время от магазина до db занимает очень долгое время в Realm в сравнении с Sanppydb.
Тест показывает следующий результат. Как вы можете видеть на изображении, Realm находится примерно в 100-200 раз медленнее, чем Snappydb.
Что я делаю, сначала создаю 10 000 объектов, а затем храним их в db. Таким образом, в моем коде я храню объект бронирования таким образом (существует цикл 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());
}
});
}
Любая идея была бы оценена. Спасибо.
Update
Это метод Snappydb для хранения объекта бронирования.
public void storeBooking(final String key, final Booking booking) {
try {
mSnappyDb.put(key, booking);
} catch (SnappydbException e) {
e.printStackTrace();
}
}
Update
Новые результаты с использованием метода insertOrUpdate()
и одной транзакции