アプリでORMLiteRuntimeExceptionDao
のcreateOrUpdate(...)
メソッドを呼び出すのが非常に遅いです。
Item
2 つの ints (1 つはgeneratedId
)、 a 、String
および aを持つ非常に単純なオブジェクト ( ) がありdouble
ます。以下のコードを使用して、データベース内のオブジェクトを更新するのにかかる時間 (およそ 100 回) をテストします。ログ ステートメントは次のように記録します。
1 行を 100 回更新する時間: 3069
1 行しかないテーブルで、オブジェクトを 100 回更新するのに 3 秒かかるのはなぜですか。これは通常の ORMLite の速度ですか? そうでない場合、何が問題なのですか?
RuntimeExceptionDao<Item, Integer> dao =
DatabaseManager.getInstance().getHelper().getReadingStateDao();
Item item = new Item();
long start = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
item.setViewMode(i);
dao.createOrUpdate(item);
}
long update = System.currentTimeMillis();
Log.v(TAG, "time to update 1 row 100 times: " + (update - start));
100 の新しい行を作成すると、速度はさらに遅くなります。
注:私はすでに使用していormlite_config.txt
ます。ログに記録"Loaded configuration for class ...Item"
されるため、これは問題ではありません。
ありがとう。