cpu
文章平均质量分 86
collective_lz
技术人员的目标不是拥有多么厉害的技术,而是用技术去促成一个产品的成功
展开
-
磁盘IO-为什么说IO密集型很少消耗CPU资源?
我们都知道磁盘io,网络io,是不会消耗cpu资源的,但是说原理,你说得清么?今天我们就从底层原理,简单直白的说清楚,为什么磁盘io很少消耗CPU资源。一、内核缓冲区与用户缓冲区我们知道应用程序因为调用权限限制,分为用户态和内核态。当我们需要把应用程序里面的数据写入到磁盘或者网络的时候,就需要将数据从用户空间,写入到内核空间,图示:第一步cpu复制,是用户缓冲区,到内核缓冲区是cpu来操作的。第二部从内核缓冲区到磁盘,是交给了DMA(Direct Memory Access)直接内存访问。原创 2022-03-20 18:45:00 · 2930 阅读 · 1 评论 -
内存屏障(Memory Barrier)(二)什么是读屏障?
我们知道了写屏障的由来,下面我们说下读屏障一、Store Buffer的性能瓶颈我们在写屏障那篇文章中说了Store Buffer,但是如果Store Buffer满了,说明是在等待Invalidate Acknowledge,导致不能及时刷新到cache。而cpu返回Invalidate Ack需要这样一个流程#mermaid-svg-kyTweTG41NnTrtLX {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16原创 2022-03-13 15:42:42 · 2879 阅读 · 0 评论 -
内存屏障(Memory Barrier)(一)什么是写屏障?
目录为什么要有写屏障1、Store Buffer提升MESI性能2、Store Buffer导致读写乱序3、写屏障总结关于内存屏障,我翻阅了很多文章,都没有给人讲的比较明白,因为我看了许多文章之后,仍然有以下几个疑问:为什么要有内存屏障?什么是LoadLoad,LoadStore,StoreStore,StoreLoad?他们之间的区别到底是什么?Load和Store有什么不同?为什么要加Load和Store?带着这样的疑问,在这一系列文章中,我想从原理开始一点一点说清楚。为什么要有写屏障原创 2022-03-13 14:58:44 · 4087 阅读 · 0 评论 -
多核cpu怎么保证数据一致性(四)volatile关键字、happens-before原则、内存屏障
系列文章目录文章目录系列文章目录前言一、java的数据不一致问题二、内存屏障三、happens-before原则总结前言上篇文章《多核cpu怎么保证数据一致性(三)MESI缓存一致性协议》我们说了怎么保证缓存的一致性的MESI协议,这样的情况下cpu层面是不会出现缓存不一致的问题的,那么java为什么还有volatile等关键字来保证缓存的一致性呢。一、java的数据不一致问题如下一段代码public class VolatileTest { private static int原创 2020-11-08 15:34:29 · 1413 阅读 · 0 评论 -
多核cpu怎么保证数据一致性(三)MESI缓存一致性协议
系列文章目录多核cpu怎么保证数据一致性(一)为什么要做指令重排序?多核cpu怎么保证数据一致性(二)cpu为什么要用高速缓存?L1,L2,L3 cache文章目录系列文章目录前言一、MESI缓存一致性协议二、MESI协议怎么保证数据一致性的呢?三、cpu是怎么更新这4种状态的呢?总结前言上篇文章《多核cpu怎么保证数据一致性(二)cpu为什么要用高速缓存?L1,L2,L3 cache》我们说了为什么要用多核cpu,以及为什么要用cpu高速缓存,但是因为L1,L2cache是每个cpu的核独有原创 2020-11-03 23:06:25 · 2172 阅读 · 0 评论 -
多核cpu怎么保证数据一致性(二)cpu为什么要用高速缓存?L1,L2,L3 cache
系列文章目录多核cpu怎么保证数据一致性(一)为什么要做指令重排序?文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤原创 2020-11-02 22:28:46 · 4709 阅读 · 2 评论 -
多核cpu怎么保证数据一致性(一)为什么要做指令重排序?
系列文章目录系列前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言其实一直想写一篇关于cpu的指令运算与java代码相结合的文章,今天,它来了,本文主要介绍java的指令怎么在最高的运用电脑cpu性能的情况下保证正确的执行,提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npim原创 2020-10-31 17:29:57 · 2168 阅读 · 0 评论