标签:运行时 移动 区域 程序 前言 性能 枚举 值类型 结束
Swift 中的数据类型分为引用类型(类)和值类型(枚举、结构体)。
栈是一块空间较小,但是运行速度很快的内存区域。
我们的程序是由一个个方法组成的,CPU 会负责调度并执行这些方法。
堆是内存中的另一块区域,空间比栈大的多,但是运行速度要比栈上的运行速度慢。
堆的内存分配原则比较复杂,不会像栈上那样在方法调用结束时立即回收,系统需要在栈上不断的寻找不再需要的内存,然后进行回收。
在多线程环境中,多个线程会共享堆上的内存,为了确保线程安全,不得不在堆上进行加锁操作,但是加锁操作是很耗费性能的,你在堆上所获的的数据安全性实际上是在牺牲性能的代价下得来的。
标签:运行时 移动 区域 程序 前言 性能 枚举 值类型 结束
原文地址:https://www.cnblogs.com/QianChia/p/8861908.html