У меня есть сообщение от клиента в поле, что мое приложение «необычайно медленно» при работе на HTC Incredible. Чтобы лучше диагностировать подобные проблемы, мое приложение поставляется с тестом производительности View. Это представление запускает тест, который вставляет 1, 10 и 100 строк во временную базу данных SQLite. База данных хранится во внутренней памяти телефона.
На моем HTC Evo (что примерно соответствует характеристикам Incredible), этот тест может выполнить 1 вставку за 100 мс, 10 за 150 мс и 100 за 1000 мс (1 с)
На устройстве, используемом нашим клиентом, одна вставка занимает 1000 мс, десять - 1500 мс, а 100 - 15000 (15 с).
Это в основном в 10 раз медленнее. Может ли кто-нибудь предположить, почему в этом случае операции с базами данных выполняются для этого пользователя намного медленнее, и какие шаги он может предпринять, чтобы исправить эту проблему? Эти номера указаны после перезагрузки устройства.
Это операция, которую я делаю 1, 10 или 100 раз соответственно:
private void addEvent(String title) {
SQLiteDatabase db = eventsData.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(PerfTestSQLHelper.TIME, System.currentTimeMillis());
values.put(PerfTestSQLHelper.TITLE, title);
db.insert(PerfTestSQLHelper.TABLE, null, values);
}