我試圖打擊內存泄漏導致堆用盡內存和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