什么可能导致Android设备上极慢的数据库写入?

时间:2012-01-24 16:03:20

标签: android performance sqlite

我有一个来自现场客户的报告,我的应用程序在HTC Incredible上运行时“速度非常慢”。为了更好地诊断这样的问题,我的应用程序附带了性能测试View。此View运行一个测试,将1,10和100行插入临时SQLite数据库。数据库保存在内部手机内存中。

在我的HTC Evo上(与Incredible大致相同的规格),此测试可以在100毫秒内完成1次插入,在150毫秒内完成10次,在大约1000毫秒(1秒)内完成100次

在我们客户运行的设备上,一次插入需要1000 ms,十次需要1500 ms,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);
}

1 个答案:

答案 0 :(得分:0)

如果你使用基准测试应用程序 https://market.android.com/details?id=com.aurorasoftworks.quadrant.ui.standard&feature=search_result

然后您将了解到数据库I / O性能因手机而异。

我们所能做的就是优化代码。