Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 垃圾收集器在我的应用程序启动时每秒钟运行一次_Android_Garbage Collection - Fatal编程技术网

Android 垃圾收集器在我的应用程序启动时每秒钟运行一次

Android 垃圾收集器在我的应用程序启动时每秒钟运行一次,android,garbage-collection,Android,Garbage Collection,我有一种奇怪的行为。我的应用程序第一次启动时启动得非常快。 第二次启动时(之前关闭了应用程序,并与taskmanager检查该应用程序是否不再运行),其运行速度非常慢。第三次快,第四次慢。每秒钟的启动速度都很慢。这是因为我的垃圾收集器第二次开始工作,但我不知道为什么。应用程序的启动行为是否应该始终相同 我的decodeStream语句是非常慢的一步。我有大约100个小图片(5千字节-15千字节)我想加载 Log.v("DEBUG DRAWEVENT 71","load " + e.sEventT

我有一种奇怪的行为。我的应用程序第一次启动时启动得非常快。 第二次启动时(之前关闭了应用程序,并与taskmanager检查该应用程序是否不再运行),其运行速度非常慢。第三次快,第四次慢。每秒钟的启动速度都很慢。这是因为我的垃圾收集器第二次开始工作,但我不知道为什么。应用程序的启动行为是否应该始终相同

我的decodeStream语句是非常慢的一步。我有大约100个小图片(5千字节-15千字节)我想加载

Log.v("DEBUG DRAWEVENT 71","load " + e.sEventTitle);
bm = BitmapFactory.decodeStream(new FileInputStream(fImage), null, o2);
Log.v("DEBUG DRAWEVENT 72","end load " + e.sEventTitle);
显示垃圾收集活动的LogCat(仅每2.start一次)

我在API 12级

有什么提示吗

新的分析事实:首次启动后,应用程序仍在缓存进程(35MB)下运行。可以在设置->应用->运行->显示缓存进程下显示缓存进程。 当停止这个过程时,我的第二次启动也运行得很快


下一个问题。如何防止应用程序被缓存?

这可能是因为,第一次运行时,它将使用免费缓存,第二次运行时,可用内存可能会减少,因此GC会立即进入播放并清除缓存。我可以看到您没有关闭
FileInputStream
,并且您可能有其他泄漏。发布更多代码,我们可以检查它。如果我的应用程序会泄漏,那么在终止应用程序时泄漏不应该消失吗。我的意思是第一次、第三次和第五次启动在没有GC的情况下运行。第二,第四,所以有GC活动。我意识到,在第一次启动后,应用程序被缓存为32MB。为什么?我想,这就是问题所在。我如何防止应用被缓存。或者,我如何终止应用程序,使其不会被缓存?(杀死过程?)
01-04 16:16:03.500: V/DEBUG DRAWEVENT 71(20427): load Title
01-04 16:16:03.641: D/dalvikvm(20427): GC_FOR_ALLOC freed 17K, 33% free 28448K/41924K, paused 138ms, total 138ms
01-04 16:16:03.641: I/dalvikvm-heap(20427): Grow heap (frag case) to 27.842MB for 34612-byte allocation
01-04 16:16:03.771: D/dalvikvm(20427): GC_FOR_ALLOC freed 0K, 33% free 28481K/41960K, paused 138ms, total 138ms
01-04 16:16:03.781: V/DEBUG DRAWEVENT 72(20427): end load Title