我试图打击内存泄漏导致堆用尽内存和GC来调用。很多。DDMS分配跟踪器填充“SimpleListIterator”
logcat的填充有消息是这样的:
11-27 20:54:39.052:DEBUG/dalvikvm(32167):GC_CONCURRENT释放405K, 5%的游离11046K/11591K,暂停2MS + 3ms的
我用DDMS分配跟踪,看看是否有什么特别得到分配比平时多,那我点击“获取分配”在Eclipse中按钮的瞬间,该列表中弥漫着的java.util .AbstractList $ SimpleListIterator 他们在主循环期间得到分配,所以有很多,我相信这是吃堆内存的东西。 509分配的SimpleListIterator)
然而, DDMS告诉我,他们正在分配任何有for-each循环,我认为这是奇怪的。 O_O
通常我会用循环的常客,但this article建议使用for-each循环,而不是因为它的速度更快,但它提到关于其内存使用量没有
难道所有这些分配是使用的结果为每个循环,而不是常规的循环? (需要一段时间才能进入并更改每个应用的每个循环,因此我宁愿先问) 如果是,那么这是正常的吗?这是我的编程错误?
UPDATE 我将for-each循环更改为regular循环,并彻底解决了这个问题。我仍然认为它的愚蠢,虽然我不得不这样做
您是否在此阅读过有关此问题的相关主题? – davidcesarino
哪些“相关主题”? – AlexRamallo
请参阅下面的“回答”(引号)... – davidcesarino