9、深入理解堆:malloc和内存池是怎么回事

你好,我是海纳。 在[第3节课],我们讲到线性地址空间按照功能的不同,可以分为不同的区域。同时,我们还简单介绍了,如何使用sbrk和mmap这两个系统调用,向操作系统申请堆内存。 其实,堆内存是程序员打交道最多的一块区域,无论是哪种编程语言,正确合理...

编程高手必学的内存知识

10、页中断:fork、mmap背后的保护神

你好,我是海纳。 这节课是对前面所有课程的一次总结和回顾。前面我们介绍了很多内存管理的相关机制,其实都是为了把这节课的故事讲完整。在前面的课程里,我们了解了进程内部的分布,但也留下了三个关键的问题没有讲清楚: fork的工作方式非常奇怪,一方面父进...

编程高手必学的内存知识

11、即时编译:高性能JVM的核心秘密

你好,我是海纳。 在前面的课程里,我们讲解了进程内部的具体布局,以及每一个部分的功能和作用。你会发现,所有的例子都是用C/C++写的,我相信你在学习的过程中,心里可能会产生这样的疑问:那Java和Python语言是怎么运行起来的呢? 有这个...

编程高手必学的内存知识

12、内存虚拟化:云原生时代的奠基者

你好,我是海纳。 今天的这节课呢,是软件篇中的最后一节课了,在前面的课程里,我们整体介绍了单机系统上内存管理的基础知识。这节课,我们就结合前面学习的内容,一起来探讨下,虚拟化中的内存管理,因为我们前面讲过了内存知识,在这个基础上,你再来学习虚拟化中的...

编程高手必学的内存知识

13、存储电路:计算机存储芯片的电路结构是怎样的

你好,我是海纳。 之前的课程,我们从软件的角度学习了内存管理的基本知识。从这一节课开始,我们把注意力转向内存的硬件实现。掌握硬件篇的知识,是你学习计算机组成原理和体系结构的基础。而且,计算机体系结构中最常用的手段就是合理地使用各种器件,通过体系手段来...

编程高手必学的内存知识

14、CPU Cache:访存速度是如何大幅提升的

你好,我是海纳。 经过上一节课的学习,我们了解到不同的物理器件,它们的访问速度是不一样的:速度快的往往代价高、容量小;代价低且容量大的,速度通常比较慢。为了充分发挥各种器件的优点,计算机存储数据的物理器件不会只选择一种,而是以CPU为核心,由内而外地...

编程高手必学的内存知识