我有一个Android应用程序,它使用JSON与Jersey Web服务进行通信。收到的数据存储在Android设备上的SQLite数据库中。
根据DDMS,堆大小约为6MB,大约2MB空闲。但是,应用程序在收到一些数据后会“暂停”(不会从Web服务中询问新数据)。然后我看到垃圾收集被触发,应用程序继续。手动触发System.gc()
似乎没有效果,甚至会降低性能。
我的问题是:垃圾收集是暂停的原因,还是写在Android设备上的SQLite数据库相对较慢?
更新:Android版本为2.3.3
答案 0 :(得分:1)
写入SQLite数据库很慢,因为文件I / O很慢,因为闪存很慢。更具体地说,SQLite事务很慢,因为事务将数据写入闪存,而闪存速度很慢。如果您要快速连续执行多个SQL操作,请考虑将它们包装在您自己的事务中。
除此之外,使用Traceview确定您的时间花在哪里。