Для вставки области объекта JSON требуется 60 мс на объект

У меня есть следующий объект json: https://pastebin.com/B9Z1Wmqd

В настоящее время используется Realm 2.0.2

Мои соответствующие объекты (упрощенно) выглядят следующим образом, поэтому вы можете увидеть отображение:

Объект верхнего уровня:

public class PlannedTaskDao extends RealmObject {

    @PrimaryKey
    private Long tasks_id;
    private Date date;
    private Date lastUpdate;
    private Long clients_id;
    private String hour;
    private String libelle;
    private String comments;
    private Boolean closed;

    private int displayOrder;
    private long executionTime;
    private Long locations_status_id;
    private boolean deleted;
    private String locationName;
    private RealmList<PlannedTaskGroupDao> tasks;
    private RealmList<PlannedTaskUserDao> users;
    private Long affected_users_id;
}

Подобъекты:

public class PlannedTaskGroupDao extends RealmObject {

    private Long group_config_id;
    private String libelle;
    private RealmList<PlannedSubTaskDao> subtasks;
}

public class PlannedSubTaskDao extends RealmObject {

    private Long tasks_id;
    private String task_value;
    private String libelle;
    private String type; // status_value/status_only

    private Long status_id;
    private SiteDao site;
    private Long controls_items_id = 0L;
    private float weight;
    private Long subtask_config_id;
}

public class PlannedTaskUserDao extends RealmObject {

    private String config_user_id;
    private Long chosen_user_id;
    private String signature;
    private boolean signed;
    private String userName;
}

Я использую телефон Motog G 1st Gen и провожу некоторые тесты производительности (все еще очень приличный телефон). Среднее время вставки этого и подобных сложных объектов одного и того же типа составляет примерно 60 мс на каждый вставленный объект PlannedTaskDao. БД пуста, поэтому это не обновление. Я выполнил это в цикле из 1000 объектов в 1 транзакции.

Для анализа строки json этих объектов из ответа веб-службы в массив JSONArray требуется ~2 сек, чтобы получить порядок величины.

JSONArray jsonArray = getResFromWS(); // contains 1000 objects of similar complexity to the pastebin json object shown above

 for (int i = 0 ; i < jsonArray.length(); i++) {

     try {
          // calculate start time here
          RealmObject realmObj = realm.createOrUpdateObjectFromJson(clazz, jsonArray.getJSONObject(i));
          // check insertion time here in ms since start time
          // do post treatment to realmObj
          linkObjects(realmObj);
         } catch (Exception e){
                e.printStackTrace();
      }
 }

Это, очевидно, означает, что для вставки 1000 объектов требуется примерно 1 минута.

Это нормально для realm/realm-java, чтобы иметь такую ​​производительность? Что я могу сделать, чтобы улучшить производительность и сократить время вставки в область? Я не пользуюсь последней версией, были ли какие-либо большие достижения в последней версии Realm Java для улучшения этого?

0 ответов

Другие вопросы по тегам