39、MESI协议:如何让多核CPU的高速缓存保持一致?你平时用的电脑,应该都是多核的CPU。多核CPU有很多好处,其中最重要的一个就是,它使得我们在不能提升CPU的主频之后,找到了另一种提升CPU吞吐率的办法。 不知道上一讲的内容你还记得多少?上一节,我们讲到,多核CPU里的每一个CPU核,都有独立的属...2025-11-01
38、高速缓存(下):你确定你的数据更新了么?在我工作的十几年里,写了很多Java的程序。同时,我也面试过大量的Java工程师。对于一些表示自己深入了解和擅长多线程的同学,我经常会问这样一个面试题:“volatile这个关键字有什么作用?”如果你或者你的朋友写过Java程序,不妨来一起试着回答一...2025-11-01
37、高速缓存(上):“4毫秒”究竟值多少钱?在这一节内容开始之前,我们先来看一个3行的小程序。你可以猜一猜,这个程序里的循环1和循环2,运行所花费的时间会差多少?你可以先思考几分钟,然后再看我下面的解释。 12345678910int[] arr = new int[64 * 1024 * 1...2025-11-01
36、局部性原理:数据库性能跟不上,加个缓存就好了?平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里。而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候。这个时候,大部分工程师和架构师会拿出一种叫作“缓存”的武器,通过使用Redis或者Memcache这样的开源软件,在数据库前...2025-11-01
35、存储器层次结构全景:数据存储的大金字塔长什么样?今天开始,我们要进入到计算机另一个重要的组成部分,存储器。 如果你自己组装过PC机,你肯定知道,想要CPU,我们只要买一个就好了,但是存储器,却有不同的设备要买。比方说,我们要买内存,还要买硬盘。买硬盘的时候,不少人会买一块SSD硬盘作为系统盘,还会...2025-11-01