解决方法
由于cpu只能在RAM中执行数据和代码,因此操作系统与cpu协同工作以跟踪程序在RAM中使用的内存以及保存到虚拟RAM中磁盘上的特殊文件的内容(即pagefile / swapfile). RAM中的内容称为“常驻”或“工作”集.
这对于开发人员来说很重要,因为访问已经在RAM中的内存所需的时间比操作系统必须首先将内存从磁盘加载到RAM要快许多个数量级.设计保持关键数据驻留的程序比不关心如何分配和访问内存的程序具有更高的性能特征.
堆是将操作系统呈现给进程的大开内存分区,组织成data structure bearing the same name.该进程使用该组织执行访问(并跟踪以后发布)一次只有小块.例如,如果进程想要存储一个整数数组,那么它需要一块具有尽可能多的字节的内存块,因为元素的数量乘以整数的大小.
这种分区超出了操作系统的交换功能.我在运行时访问堆以存储我的对象和数据结构的内存字节分配,但是这个堆分配仍然存在于操作系统给我的内存中,它以4096字节“页面”的形式查看,可以移动来自磁盘的来回.
堆栈是操作系统提供进程的另一种特殊数据结构,但不同之处在于它一次获取所有堆栈,并且当一个进程按顺序将项目放入堆栈时,它会递增(或递减)一个特殊指针(通常一个特殊的cpu寄存器)来跟踪它在这个堆栈中的位置.在更高级别,每个线程跟踪堆栈以及指针在该堆栈中的位置.局部变量,函数参数和返回指针存储在此处,并且当进程执行以跟踪这些事物时,指针在该存储器上递增和递减.
原文地址:https://www.jb51.cc/nodejs/241272.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。