美文网首页
第7章,对内存的思考

第7章,对内存的思考

作者: Dafanzi | 来源:发表于2017-01-08 13:58 被阅读0次

进程的虚拟内存缺页中断(可能段违规)

判断该引用是否有效是看该页面是不是通过正常手段声明要使用的,例如malloc申请,就会发生正常的缺页中断。而随意在malloc后面的内存空间进行访问,可能就会发生段违规(因为mallo的内存是一块一块的分配的,也许后面挨着的地址那块已经分配给进程了)。

数据段和堆(heap)

原来堆是属于数据段的,位于数据段的顶部,而且堆是可以动态变化大小的。

内存泄漏

程序结束的时候,其内存就会被释放的,所以一些不会长时间驻留的程序不用考虑那内存回收等问题。然而一些

生存世家较长的程序,如日历管理器,邮件工具等程序,需要我们详细斟酌动态内存的分配和回收。因为C语言没有java那样的垃圾收集器(自动确认并回收不再使用的内存块)。这些程序,在使用malloc和free的时候需要非常谨慎。堆经常会出现两种类型的问题。

释放或改写仍在使用的内存(称为“内存损坏”)

未释放不再使用的内存(称为“内存泄漏”)

如何检测内存泄漏

总线错误,段违规

另外总线错误和段错误的准确原因在不同的操作系统版本上各不相同,归根结底这两种错误都是硬件告诉操作系统一个有问题的内存引用造成的。在缺省情况下,进程在收到“总线错误”或“段错误”信号后将进行信息转储并终止。所以一般会出现core dump的提示,之所以这里是core,是因为很久以前内存的材料是铁氧化物圆环(core)。

总线错误

段错误

相关文章

  • 目录

    第1章自动引用计数 1.1什么是自动引用计数 1.2内存管理/引用计数 1.2.1概要1.2.2内存管理的思考方式...

  • 第7章,对内存的思考

    进程的虚拟内存缺页中断(可能段违规) 、 判断该引用是否有效是看该页面是不是通过正常手段声明要使用的,例如mall...

  • iOS内存管理思考方式和所有权修饰符

    1、内存管理的思考方式   引用计数式内存管理的思考方式就是思考ARC所引起的变化。   ● 自己生成的对象,自己...

  • iOS之内存对齐

    关于iOS的内存对齐,首先我们思考一个问题,iOS的对象实例在内存中是如何分布的?带着这个问题我们往下看。 OC对...

  • JVM结构-内存结构(运行时数据区)

    我们知道JVM内存结构也就是java程序时运行区,所以在了解之前首先对其思考: JVM内存结构都包含哪几部分,都是...

  • iOS - 内存对齐分析

    iOS 内存对其原则 数据成员对⻬规则:结构(struct)(或联合(union))的数据成员,第⼀个数据成员放在...

  • 对内存的思考

    内存的历史 现代的intel处理器可以追溯到最早期的intel芯片。1.8085处理器充分利用了芯片整合技术,它将...

  • Effective Objective-C 2.0笔记(四)

    第五章 内存管理 第29条:理解引用计数 OC使用引用计数管理内存,引用计数机制通过递增递减的计数器来管理内存。对...

  • Effective Objective-C 2.0 总结(五)

    内存管理 第 29 条:理解引用计数 引用计数工作原理 Objective-C 语言使用引用计数来管理内存,每个对...

  • iOS block里使用下划线调用实例变量会对self强引用的原

    如题, oc代码如下: 依据我们以往对block的内存管理的思考方式: self 强引用 _bbbbb,而在 _b...

网友评论

      本文标题:第7章,对内存的思考

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