簡體   English   中英

AS3 / Flex性能-新的ArrayList與ArrayList.removeAll()

[英]AS3/Flex Performance - new ArrayList vs. ArrayList.removeAll()

實際上什么更快? 只是創建一個新的ArrayList / ArrayCollection或重新使用現有的ArrayList / ArrayCollection並刪除其元素?

我正在為始終是性能問題的手機開發產品,因此我追求最快的方法。

這是有關清除ArrayList / ArrayCollection的優化的有趣的博客文章 顯然,設置mycollection.source = new Array()的速度明顯快於使用大型數據集的mycollection.removeAll() ,因為removeAll可確保刪除所有事件偵聽器。

在這種情況下,很可能新的ArrayList將擊敗ArrayList.removeAll(),但新的源Array可能是更好的選擇,因為它對綁定/偵聽器的影響較小。

mycollection.source = [];甚至更快mycollection.source = []; (與mycollection.source = new Array()

另一種選擇是使用鏈接列表和對象池。 對象池允許重寫對象的屬性,而不是刪除對象並創建新的對象。 如果隨后將它們保留在鏈接列表而不是數組中,則遍歷它們會快得多。 因此,如果只想遍歷一堆對象,請使用鏈接列表,但是如果需要進行任何排序,則數組和向量會更快。

另一個問題是內存使用。 不僅是為了使運行的應用程序的內存更小,而且聲明的對象越多,垃圾收集器清理時要做的工作也就越多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM