简单看下Java 的内存及其共享

简单看下Java 的内存及其共享本文简单分析下Java的内存, 结合CPU的的架构, 看看内存共享, 以及为什么会遇到的伪共享的问题. 第一: CPU的相关知识 目前的程序大部分跑在多核多线程处理器上, 下面是i3 双核4线程的相关参数图 牙膏厂的i3 处理器架构 上面两张图都是在CPU 内部, 和内存条还没有关系呢 缓存存在的意义: 当时的内存条 速度太慢了, 跟不上CPU的节奏,
摘要由CSDN通过智能技术生成

简单看下Java 的内存及其共享

本文简单分析下Java的内存, 结合CPU的的架构, 看看内存共享, 以及为什么会遇到的伪共享的问题.

  • 第一: CPU的相关知识
    目前的程序大部分跑在多核多线程处理器上, 下面是i3 双核4线程的相关参数图
    这里写图片描述
    牙膏厂的i3 处理器架构
    彩图显示

上面两张图都是在CPU 内部, 和内存条还没有关系呢
缓存存在的意义: 当时的内存条 速度太慢了, 跟不上CPU的节奏, 等CPU运行完抽两颗烟, 操作RAM的数据在没读写完呢, 同理RAM的存在的意义也是这样的, HDD 硬盘的存取速度太太满了~
注: RAM 包括 缓存和内存条

CPU -> L1 Cache -> L2 Cache -> L3 Cache -> 内存条 ->HDD

CPU RAM HDD
上图的读写参数仅供参考, 只是对比速度
盗图一张
这里写图片描述

总结:
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
  正是这样的读取机制使CPU读取缓存的命中率非常高,也就是说CPU下一次要读取的数据大部分都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值