您的位置:首页 > 移动开发 > Android开发

Android数据库接口性能分析

2011-03-08 17:04 337 查看
数据库表中有105记录,20个字段,都是文本和数值字段

DatabaseHelper.getReadableDatabase 首次调用耗时15~46ms,其后调用为0

SQLiteDatabase.Query 耗时基本在1~2ms

SQCursor.getCount 耗时 9~26ms

SQCursor.getColumnIndex 耗时0ms

SQCursor.close 耗时0ms

getReadableDatabase首次调用时,会生成SQLiteDatabase对象,该对象构建时去打开数据库文件,所以这个操作比较耗时。

SQCursor.getCount调用时,回去执行fillWindow,将查询的数据从文件系统缓存到内存中,因此这个操作也比较耗时。与getReadableDatabase打开表操作类似,耗费时间都与数据库中记录数成正比。

SQLiteDatabase.Query需要1~2ms,Query 返回新产生的SQLiteCursor对象。这个过程中要创建SQLiteDirectCursorDriver、SQLiteQuery、SQLiteCursor对象,并且在SQLiteCursor构造函数中会将查询涉及到的字段名缓存起来。如果比较看重时间耗费的话,可以尽量复用已有的Cursor对象。

SQCursor.getColumnIndex 与SQCursor.close 耗费很少,因为基本上都是对缓存数据的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: