内存篇
zhangyanfei01
欢迎关注个人公众号:开发内功修炼
展开
-
开发内功修炼内存篇汇总
最近终于抽空把内存篇更新完了,我分享出来的这些问题,其实都是我之前没有搞的特别明白的困惑。刚刚开始的时候,可能就是在我脑子里蹦出的一个疑问,比如内存随机IO会比顺序IO慢吗? 为了解开这个疑惑,我曾经在网上各种搜索,也去到过国家图书馆翻书,动手搞代码进行性能测试。最终总算是给了自己一个相对比较满意的答案,终于在今年我抽空给大家分享了出来。在这个解惑过程中,我越来越深地感受到国内的技术圈的特点。...原创 2020-04-28 08:19:08 · 569 阅读 · 0 评论 -
挑战Redis单实例内存最大极限,“遭遇”NUMA陷阱!
我们公司的基础架构部有个云Redis平台,其中Redis实例在申请的时候可以自由选择需要的内存的大小。然后就引发了我的一个思考,Redis单实例内存最大申请到多大比较合适?假设母机是64GB内存的物理机,如果不考虑CPU资源的的浪费,我是否可以开一个50G的Redis实例?于是我在Google上各种搜索,讨论这个问题的人似乎不多。找到唯一感觉靠谱点的答案,那就是单进程分配的内存最好不要超过一个...原创 2020-04-28 08:17:14 · 1110 阅读 · 0 评论 -
一次内存性能提升的项目实践
现代的开发语言除了C++以外,大部分都对内存管理做好了封装,一般的开发者根本都接触不到内存的底层操作。更何况现在各种优秀的开源组件应用越来越多,例如mysql、redis等,这些甚至都不需要大家动手开发,直接拿来用就好了。所以有些同学也会觉得作为应用层开发的同学没有学习的必要去学习底层。但我想通过本文的实际案例告诉大家,哪怕不直接接触内存底层操作,就只是用一些开源的工具,如果你能理解底层的工作原...原创 2020-04-28 08:14:25 · 196 阅读 · 0 评论 -
PHP7内存性能优化的思想精髓
前面我们讨论了内存的工作原理,也进行了一些性能相关的测试。那么今天开始我们来看几个在实践中的应用。首先我们先从PHP开始。2015年,PHP7的发布可以说是在技术圈里引起了不小的轰动,因为它的执行效率比PHP5直接翻了一倍。PHP7在内存方面,你是否知道作者都进行了哪些优化?几个核心结构体的改进只是表面上看起来优化的几个字节那么简单?让我们先从核心的数据结构改进开始看起。一、PHP7 zv...原创 2020-04-28 08:12:16 · 218 阅读 · 0 评论 -
NUMA架构下的内存访问延迟区别!
现在的服务器物理机CPU一般都是多个CPU,核数也是十几甚至几十核。内存几十GB甚至是上百G,也是由许多条组成的。那么我这里思考一下,这么多的CPU和内存它们之间是怎么互相连接的?同一个CPU核访问不同的内存条延时一样吗?在《内存随机访问也比顺序慢,带你深入理解内存IO过程》中我们了解了内存访问时芯片内部的执行过程,在《实际测试内存在顺序IO和随机IO时的访问延时差异》中我们又进行了实际的代码...原创 2020-04-28 08:08:15 · 1592 阅读 · 0 评论 -
揭穿内存厂家“谎言”,实测内存带宽真实表现
带宽是存储系统一个的一个非常重要的衡量指标,内存带宽指的是CPU从内存读取或写入数据到内存的速率。我们今天来思考一个问题,在你的应用程序里内存的访问带宽能够达到多少?各代内存带宽规格理论上内存带宽的计算公式是:Band Width = Speed * Data Width。在这个公式的基础上,我们来看一下各代规格的内存带宽表现。从上图来看,DDR3代的内存 DDR3代1066M...原创 2020-04-28 08:05:41 · 621 阅读 · 0 评论 -
实际测试内存在顺序IO和随机IO时的访问延时差异
在《内存随机访问也比顺序慢,带你深入理解内存IO过程》一文中,我们理解了内存IO的内部实现过程,知道了内存的随机IO比顺序IO要慢,并对延迟时间进行了大概的估算。那么我们今天来用代码的方式来时间一下,看看在我们的项目工程中,内存访问的在不同的访问场景下延时究竟是个什么表现。先测顺序情况测试原理就是定义一个指定大小的double(8字节)数组,然后以指定的步长去循环。这里面的变量有两个。核心...原创 2020-04-28 08:02:45 · 498 阅读 · 0 评论 -
内存随机也比顺序访问慢,带你深入理解内存IO过程
平时大家都知道内存访问很快,今天来让我们来思考两个问题:问题1:内存访问一次延时到底是多少?你是否会进行大概的估算?例如笔者的内存条的Speed显示是1066MHz,那是否可以推算出内存IO延时是1s/1066MHz=0.93ns? 这种算法大错特错。问题2:内存存在随机IO比顺序IO慢的问题吗? 我们都知道磁盘的随机IO要比顺序IO慢的多(操作系统底层还专门实现了电梯调度算法来缓...原创 2019-10-14 08:52:34 · 1179 阅读 · 6 评论