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 耗费很少,因为基本上都是对缓存数据的操作。
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 耗费很少,因为基本上都是对缓存数据的操作。
相关文章推荐
- Android数据库接口性能分析
- Android数据库ORM框架用法、源码和性能比较分析
- Android性能优化之数据库优化
- Android中UI性能分析原理
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析(3)
- Android 性能优化之使用MAT分析内存泄露
- Android端与web端以及数据库的建立它们之间的交互详解与案例分析
- android画图性能分析
- android 多线程数据库读写分析与优化
- 数据库建立索引前后的性能分析
- 【Android 应用开发】 自定义组件 宽高适配方法, 手势监听器操作组件, 回调接口维护策略, 绘制方法分析 -- 基于 WheelView 组件分析自定义组件
- Android开发中的数据库事务用法分析
- Sql Server 性能分析4 –数据库大小,数据库表大小综合性分析报表输出
- 每天将MYSQL SLOW QUERY REPORT分发到各个邮箱供分析改善数据库性能-PYTHON
- 【转】Android最佳性能实践(二)——分析内存的使用情况
- Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析
- 关于Android 数据库SQLite性能优化
- Android 性能优化之使用MAT分析内存泄露问题
- Android System Property分析(3):property接口实现
- 【AndroidStudio】分析性能工具(AndroidDeviceMonitor)