Ormlite で挿入に時間がかかる理由を誰か説明できますか? デスクトップで 1 回の sqlite トランザクションで 1,700 回の挿入を実行すると、1 秒もかかりません。ただし、Ormlite for Android を使用すると、約 70 秒かかり、デバッグ メッセージに各挿入が表示されます。
挿入を 1 つのトランザクションにラップしようとすると、まったく同じ速度になります。Android と Ormlite の両方にオーバーヘッドがあることは理解していますが、それほど大きくなるとは思いません。私のコードは以下の通りです:
this.db = new DatabaseHelper(getApplicationContext());
dao = db.getAddressDao();
final BufferedReader reader = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.poi)));
try {
dao.callBatchTasks(new Callable<Void>() {
public Void call() throws Exception {
String line;
while ((line = reader.readLine()) != null) {
String[] columns = line.split(",");
Address address = new Address();
// setup Address
dao.create(address);
}
return null;
}
});
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}