iOS NSZone 相關介紹,中文版

來源:互聯網
上載者:User
============================================================博文原創,轉載請聲明出處電子咖啡(原id藍岩)============================================================

關於NSZone,一句話來說就是比alloc速度快。

以下翻譯來自:http://blog.csdn.net/hector_huang/article/details/7107291 在這裡感謝作者。英文地址在這裡 REF:http://cocoadev.com/wiki/NSZone

NSZone 是蘋果對記憶體配置和釋放的最佳化方式。NSZone不是一個對象;它是一個難懂的C結構,它被用於紀錄關於記憶體處理(管理)一系列對象的資訊。
你幾乎不需要擔憂你自己的應用(applications)是怎樣管理你自己的空間(zones)的 ;Cocoa透明地管理它。預設的NSZone在程式啟動和所有對象被分配時建立。 所以你為什麼想要去用你自己的NSZone呢?
如果你大量分配數百個小對象,事實上你會發現你花費精力來為他們分配記憶體是有意義的。因為這種標準的(預設的)空間會被一直使用,它會變得斑駁起來;釋放對象的過程會給整個記憶體留下令人尷尬的空隙。標準空間的分配器(allocator)也知道知道這一點,所以它嘗試著優先去使用被使用者釋放的記憶體,去填補這些空隙,但是這種方式只有在空間(zone) 變得很大時才有明顯效果。
如果你想為大量對象分配記憶體,然後,你可以建立你自己的空間(zone)並且告訴它不用去為了為新對象分配記憶體而去尋找那些空隙。分配器現在能夠每次跳到記憶體配置的末尾為你的新對象分配記憶體,能起到不錯的效果。
另外,分配器也能為你節省時間,當分配器向作業系統請求更多記憶體時,分配器去尋找哪塊空間什麼時候被填滿,需要花費不少時間。一種更快的時間是一次去請求一大塊記憶體,你也能告訴你的NSZone在這兒做什麼。
NSZone也能節省你釋放記憶體的時間。它有方法釋放大量分配的記憶體,而不打擾釋放器(deallocators)。如果用一個集合(set)包含一系列對象,這樣能夠節省時間,你可以一次釋放它們而不用去乏味地一個個釋放它們。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.