Android应用程序暂停 - 慢速垃圾收集或SQLite性能问题?

时间:2011-09-08 06:46:47

标签: android json garbage-collection jersey

我有一个Android应用程序,它使用JSON与Jersey Web服务进行通信。收到的数据存储在Android设备上的SQLite数据库中。

根据DDMS,堆大小约为6MB,大约2MB空闲。但是,应用程序在收到一些数据后会“暂停”(不会从Web服务中询问新数据)。然后我看到垃圾收集被触发,应用程序继续。手动触发System.gc()似乎没有效果,甚至会降低性能。

我的问题是:垃圾收集是暂停的原因,还是写在Android设备上的SQLite数据库相对较慢?

更新:Android版本为2.3.3

1 个答案:

答案 0 :(得分:1)

写入SQLite数据库很慢,因为文件I / O很慢,因为闪存很慢。更具体地说,SQLite事务很慢,因为事务将数据写入闪存,而闪存速度很慢。如果您要快速连续执行多个SQL操作,请考虑将它们包装在您自己的事务中。

除此之外,使用Traceview确定您的时间花在哪里。