美文网首页
iOS备忘录

iOS备忘录

作者: 扯淡的青春_ | 来源:发表于2018-07-22 22:10 被阅读0次

内存的几大区域

1.栈区 局部变量和实参
2. OC中用new,alloc 方法创建的对象
3.BSS段 没有初始化的全局变量和静态变量
4.常量区/数据段 用来存储已经初始化的全局变量、静态变量、常亮数据
5.代码段 代码的二进制文件

OC内存堆栈

  • 概念
    a. 栈区(stack):由编译器自动分配释放,存放函数的参数值、局部变量等值。其操作方式类似于数据结构中的栈。
    b.堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。堆为链表结构。
  • 回收方式
    a.栈:系统分配自动回收,生命周期只是在函数运行过程中,运行后就释放,不可以在访问。
    b.堆:程序员根据需要自己申请的空间,不手动释放,就一直可以访问到。
  • 申请后系统的响应
    a.栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
    b.堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆,然后将该节点的空间分配给程序。

内存泄漏话术

内存泄漏:程序结束了,对象内存没有释放
僵尸对象:已经被释放,空间已经释放的对象
野指针:指向僵尸对象的指针
空指针:指向nil的指针,给空指针发送消息(调用方法)不会报任何错误

static

所有未加static前缀的全局变量函数都具有全局可见性,其他的源文件也能访问。如果加了static,就会对其他源文件隐藏。
利用这一特性可以在不同的文件中定义同名函数同名变量,而不必担心命名冲突。

  • 对于函数来讲,static的作用仅限于隐藏。
  • 对于变量,static还有以下作用:
    1.控制变量的可见范围
    2.保持变量内容的持久,存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量static变量
    3.默认初始化为0

互斥锁与自旋锁

  • 互斥锁
    如果共享数据已经有其他线程加锁了,线程会进入休眠状态等待锁。一旦被访问的资源被解锁,则等待资源的线程会被唤醒
  • 自旋锁
    如果共享数据已经有其他线程加锁了,线程会以死循环的方式等待锁,一旦被访问的资源被解锁,则等待资源的线程会立即执行。

结论:自旋锁效率会比较高,但是消耗的CPU资源会更多,所以我们一般耗时的操作都会选择互斥锁,这样就不会占用过多的CPU资源。

持续更新中....

相关文章

  • iOS 备忘录如何分享到App(Share Extension)

    踩坑记录(检索关键字:怎么分享备忘录,备忘录内容分享到app,iOS 备忘录开发)参考资料: 入门参考资料: 基本...

  • LinkedME|Core Spotlight和深度链接结合使用

    在iOS 9.0之前,Apple Spotlight仅能够检索iOS自身应用的内容,比如邮件、备忘录、提醒、短信。...

  • 备忘录画初学,他们说这是指绘。

    备忘录画,就是在IOS的自带备忘录里面画画。 第一次接触到备忘录画,是在微博上很偶然的看到的,才知道原来备忘录还可...

  • 简单iOS备忘录App实现

    简单iOS备忘录App实现 详细内容参考《疯狂iOS讲义》--李刚编著 完整代码放到了GitHub。LeeLom ...

  • 论ios备忘录的逼格

    第一次接触iOS备忘录的绘画,是偶然间看到了大触们的分享。 ——“出自手机备忘录” 诶呀我的马,用备忘录能画画,手...

  • 系统更新:iOS-9

    1. 备忘录 备忘录在iOS 9中可以轻松制作待办事项的核对清单,加入照片、地图或网址链接,甚至随手画个草图。 2...

  • iOS9的新特性

    1. 备忘录 备忘录在iOS 9中可以轻松制作待办事项的核对清单,加入照片、地图或网址链接,甚至随手画个草图。 2...

  • 系统更新:iOS9

    1. 备忘录 备忘录在iOS 9中可以轻松制作待办事项的核对清单,加入照片、地图或网址链接,甚至随手画个草图。 2...

  • 你是个爱收藏的人么?

    文||糖小果 图||糖小果 -01- 前两天看到一篇文章,讲的是如何使用ios的备忘录,在此之前我认为备忘录这个功...

  • iOS备忘录

    内存的几大区域 1.栈区 局部变量和实参2.堆 OC中用new,alloc 方法创建的对象3.BSS段 没有初...

网友评论

      本文标题:iOS备忘录

      本文链接:https://www.haomeiwen.com/subject/orurmftx.html