iOS之深入解析内存管理MRC与ARC机制
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析内存管理MRC与ARC机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、內存管理
① 什么是內存管理?
- 當我們編寫程序的時候,會聲明各種各樣的變量,編寫各種各樣的代碼,它們都會占用內存,但是并不是所有的代碼和內存都是由我們進行釋放。
- 內存分為 5 個區域:棧、堆、bss段、數據段、代碼段。
- 棧:存放的是局部變量,當局部變量的作用域結束的時候就會由系統進行釋放局部變量所占用的內存空間;
- 堆:存放的是程序員手動申請的變量,手動申請的變量可以由程序員手動編寫代碼進行釋放;
- bss段:存放的是為初始化的全局變量和靜態變量,當全局變量和靜態變量進行初始化的時候系統就會回收他們所占用的空間,然后把它們存放到數據段;
- 數據段:存放的是已經初始化的全局變量和靜態變量和常量,當程序結束的時候由系統進行回收釋放;
- 代碼段:存放的是我們編寫的代碼,當程序結束的時候由系統進行回收釋放;
- 因此,需要我們管理的其實只有堆空間。
- 其實除了內存區,還有內核區(系統用來進行內核處理操作的區域)和保留區(預留給系統處理 nil 等)。以 4GB 手機為例,系統將其中的 3GB 給了五大區+保留區,剩余的 1GB 給內核區使用,如下所示:
總結
以上是生活随笔為你收集整理的iOS之深入解析内存管理MRC与ARC机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swift之深入解析“指针”的使用和实现
- 下一篇: iOS之深入解析内存管理的引用计数ret