15、MESI协议:多核CPU是如何同步高速缓存的你好,我是海纳。 上节课,我们学习了为什么要设计缓存,以及缓存和内存的映射方式。你还记得吗?在上节课结束的部分,我讲到了只要数据的访问者和被访问者之间的速度不匹配,就可以考虑使用缓存进行加速。 但是我们知道,天下没有免费的午餐,缓存在带来性能提升的同...2026-03-01编程高手必学的内存知识
16、内存模型:有了MESI为什么还需要内存屏障你好,我是海纳。 上一节课,我们学习了MESI协议,我们了解到,MESI协议能够解决多核 CPU体系中,多个CPU之间缓存数据不一致的问题。但是,如果CPU严格按照MESI协议进行核间通讯和同步,核间同步就会给CPU带来性能问题。既要遵守协议,又要提...2026-03-01编程高手必学的内存知识
17、NUMA:非均匀访存带来了哪些提升与挑战你好,我是海纳。 在硬件篇的最后一节课,我们来看两个比较重要的物理内存问题。在[第1节课],我们讲到物理内存就是指主存,这句话是不太精确的,其实大型服务器的物理内存是由很多部分组成的,主要包含外设所使用的内存和主存。 这节课,我们先会对计算机是如何组...2026-03-01编程高手必学的内存知识
18、Java内存模型:Java中的volatile有什么用你好,我是海纳。 随着这节课的开始,我们将进入到专栏的最后一个模块:自动内存管理篇。在这个模块,你将会了解到,以Java为代表的托管型语言是如何自动进行内存管理和回收整理的,这将提高你使用Java、Python、 Go等托管型语言的能力。 为什么我要...2026-03-01编程高手必学的内存知识
19、垃圾回收:如何避免内存泄露你好,我是海纳。 从这节课开始,我们进入一个新的主题,那就是垃圾回收。对于C/C++程序员来说,内存错误是一个非常头疼的问题,常见的错误有内存泄露、悬空指针等。这使得程序员在写程序时必须很小心地申请内存,并且在适当的时候释放。但即便是很优秀...2026-03-01编程高手必学的内存知识
20、Scavenge:基于copy的垃圾回收算法你好,我是海纳。 上一节课中,我们讲到GC算法大致可以分为两大类:引用计数法和基于可达性分析的算法。在基于可达性分析的GC算法中,最基础、最重要的一类算法是基于copy的GC算法(后面简称copy算法)。 Copy算法是最简单实用的一种模型,也是我们...2026-03-01编程高手必学的内存知识