我有一个来自现场客户的报告,我的应用程序在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);
}
答案 0 :(得分:0)
如果你使用基准测试应用程序 https://market.android.com/details?id=com.aurorasoftworks.quadrant.ui.standard&feature=search_result
然后您将了解到数据库I / O性能因手机而异。
我们所能做的就是优化代码。