存储设备主要区分 存储性质不同 存储容量不同 运行速度不同 用途不同 手机内存(RAM,随机存取存储器)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。...说人话,就是我们常说的手机运行内存。...在PC平台,内存经历了SIMM内存、EDO DRAM内存、SDRAM内存、Rambus DRAM内存、DDR内存的发展,到如今普及到DDR4内存,而手机上采用的LPDDR RAM是“低功耗双倍数据速率内存...通俗地说,它就相当于电脑中的硬盘,运行内存在断电后不会保留存储的数据,而要长期保持数据不丢失还是需要将数据从内存写入到硬盘当中。...eMMC的存储容量要比DDR3内存大3-4倍,常见有32G,而DDR3内存容量相对较小,常见有2-16G 2015年前所有主流的智能手机和平板电脑都采用这种存储介质。
前言 开发之中,很多时候会碰见内存泄漏和内存溢出。 而我们平常开发过程久了,可能弄混乱了其中的关系。 在这里想重新梳理一下内存泄漏和内存溢出。 1....内存泄漏 Memory Leak 内存泄漏指我们向系统申请了内存,但是一直持有该内存空间,没有进行合理的释放,导致内存空间被浪费。 简而言之就是:应该被回收的对象,没有被垃圾回收释放内存空间。...内存溢出 Out Of Memory 内存溢出指我们向系统申请内存时,系统发现没有足够的内存空间可以分配。 下面结合java进行介绍一下相关的溢出现象。以下现象都是内存溢出。...后记 就是我们不当使用内存,造成内存被大量无效消耗,造成系统剩余可分配内存不足(内存使用泄漏了),后续程序继续申请时系统已经没有多余内存可以分配了(内存使用溢出了)。...我们乱用内存并使得系统正确回收内存(内存泄漏)。 我们申请内存空间超过了系统可分配的空间(内存溢出)。
在计算机的组件中,内存是非常重要的存在。在做性能测试的过程中,针对内存的监控也是非常核心的一类指标项。在一些场景的沟通中,发现大家对于内存的理解可能存在一些偏差。...本文结合笔者的经验,对内存做一些基础知识的汇总。 01 为什么会有内存的存在? 在冯.诺依曼结构的核心设计思想中,计算机的五个基本组成部分:运算器、控制器、存储器、输入设备、输出设备。...存储器可以分为内部存储器(内存)和外部存储器(硬盘)。 早期的内存是固化在主板上,可存储的数据有限。...设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当作虚拟内存来使用。...简单而言,就是内存里的对象无法被引用,也无法被回收,一直占用着不释放,导致内存的可使用量减少。
基础概念 内存又叫主存,是CPU与其他设备沟通的桥梁,主要用来临时存放数据,配合CPU工作,协调CPU的处理速度 硬盘数据,外设数据,玩了传输数据,要进CPU前,都要先进入内存 临时存放,在断电后,内存内容就会丢失...OutOfMemoryError:栈在动态扩展时,无法申请到足够的内存空间 内存泄漏:程序运行时,申请的内存空间使用完了,不及时释放,导致可申请的内存空间越来越少。...方法区:共享内存区域,存储已被虚拟机加载的数据 栈内存:存储局部变量,变量有一定的作用域,离开作用域,空间就会被释放,所以更新速度快,生命周期短 堆内存:存储数组和对象,new出来的都存堆里,如果数据消失...= Swap + RES RES 物理内存使用量+未换出的虚拟内存大小 = CODE + DATA SHR 共享内存使用量 Swap 虚拟内存中被换出的大小 CODE 代码占用的物理内存大小 DATA...代码之外的部分占用的物理内存大小 %MEM 使用的物理内存占总内存的比率 内存分析 jmap 命令:jmap [options] pid -dump:生成java堆栈的快照信息 -heap:显示java
1、对内存的分配 ---- 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。...当然,操作系统在底层做了很多工作,比如磁盘上的虚拟内存交换(请看下以标题),不同的内存块动态映射等等。 2、虚拟内存 ---- 虚拟内存的基本思想是:用廉价但缓慢的磁盘来扩充快速却昂贵的内存。...在一定时刻,程序实际需要使用的虚拟内存区段的内容就被载入物理内存中。当物理内存中的数据有一段时间未被使用,它们就可能被转移到硬盘中,节省下来的物理内存空间用于载入需要使用的其他数据。...这个幻觉是通过“虚拟内存”实现的。 所有进程共享机器的物理内存,当内存使用完时就用磁盘保存数据。在进程运行时,数据在磁盘和内存之间来回移动。...进程只能操作位于物理内存中的页面。当进程引用一个不在物理内存中的页面时,MMU就会产生一个页错误。 内存对此事做出响应,并判断该引用是否有效。
Tip:如果在第2代中看到大量内存,表明内存被保留了很长时间,可能存在内存问题,我们需要使用内存分析工具去分析它。 较大对象如何处理 大于85KB的对象被分配在大对象堆LOH。...可以作为并发和非并发运行,默认为并发,为垃圾回收使用单独线程,因此应用程序可以垃圾回收时继续运行; 服务器模式:服务器环境提供最大吞吐、可伸缩性和性能。...服务器模式下段大小和阈值比工作站模式要大很多,反映了对服务器更高的要求。它在多个线程上并行运行垃圾回收,为每个处理器分配一个独立的SOH和LOH防止线程相互干扰。...但由于应用程序响应能力不是服务器模式的直接目标,所以在垃圾回收期间所有应用程序线程都会被挂起。 引用不足会在性能和内存效率之间折衷 弱对象引用可以保留对象,同时在垃圾回收需要时可以收集对象。...是代码性能和内存效率之间的折衷。创建对象需要占用CPU时间,但保持加载状态需要占用内存。 对象固定可以在托管和非托管代码之间传递引用 .NET使用GCHandle结构来跟踪堆对象。
而对于程序员而言,如何避免内存泄漏也是一门学问,倘若不加以控制,那么无论多大的内存都会有消耗殆尽的那天。...本文当然不是研究如何分析内存泄漏的产生原因与解决方案,而是在此之前的一步,通过简单的内存监测方式来预测内存泄漏的 潜在可能性 或者 偶发性 等。...我这边需要监测 系统内存 与 jvm堆内存 ,最终的结果会展示各个时间点的内存情况,所以需要一个时间类,表示每个切片的时间点。...timeMarkInterval是存储定时器id的,在销毁之前释放定时器;physicMemory和heapMemory获取图表div节点,用于echarts节点获取;systemInfo则会存储定时从服务器拉取到的数据...由图可见我这个系统堆内存通常消耗不到一百兆,后续可以将堆内存设定的再小一些,以提供给其它服务使用。总体内存是稳定状态,达到一定值会自动回收垃圾,占用率不会逐步提高,是个可控的系统。
什么是内存 1.存储单元 用于存放数据的硬件,程序执行前先放到内存中才能被CPU处理 2.内存地址 给内存存储单元编地址,从0开始每个地址对应一个存储单元,可以按字节编址,也可以按字长编址,...一个存储单元一个字节或字长 内存运行的基本原理 1.指令的工作原理 内存有数据段和程序段,指令存放在程序段,变量存放在数据段 程序编译成指令,会告诉CPU应该去内存的哪个地址存取数据...编译时就知道程序产生的绝对地址 静态重定位:编译后装入的时候将逻辑地址转换成物理地址,位置不可更改 动态重定位:运行时指令运行的过程中进行逻辑地址到物理地址转换,现在都采用这种方式,需要重定位寄存器 内存空间的分配和回收...内存空间的扩展(虚拟性,把物理较小的内存扩展成较大的内存) 内存的地址转换 绝对装入:编译时就知道程序产生的绝对地址 静态重定位:编译后装入的时候将逻辑地址转换成物理地址,位置不可更改 动态重定位:运行时指令运行的过程中进行逻辑地址到物理地址转换...,现在都采用这种方式,需要重定位寄存器 内存保护:进程只能访问自己的内存空间 1)采用上下限寄存器 2)采用重定位寄存器和界地址寄存器,重定位(基址寄存器)存储起始物理地址,界地址寄存器(限长寄存器)存储最大逻辑地址
早上到单位 发现服务器 mysql 服务器停了 然后起来了 查询日志 显示 内存满了 把mysql服务给杀了 linux 服务器如果 内存满了 会自动清理进程 防止服务器挂掉 选择的话 谁占的的内存大...就先杀谁 我的服务器里面 mysql服务占的内存是最大的 所以就把mysql就给杀了 image.png 然后 重启mysql 查询内存 image.png 在这说一下 怎么看linux的内存 举个例子...空闲的内存数: 232M shared 当前已经废弃不用,总是0 buffers Buffer 缓存内存数: 62M cached Page 缓存内存数:421M 关系:total(1002M) = used...记住内存是拿来用的,不是拿来看的.不象windows, 无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候...,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常 swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦
❞ 其他的知识,包括 Java5 之后的垃圾收集器,如 Java8 的 MetaSpace 取代了永久代、G1 收集器等,将在日后的文章中进行介绍。...对于内存分配请求,实现的难点在于在堆中找到一块没有被使用的确定大小的内存空间。所以,对于大部分垃圾回收算法来说「避免内存碎片化」是非常重要的,它将使得空间分配更加高效。...比如,如果堆内存很小,每次垃圾收集就会很快,但是频次会增加。如果堆内存很大,很久才会被填满,但是每一次回收需要的时间很长。...尽量少的内存碎片:每次将垃圾对象释放以后,这些空间可能分布在各个地方,最糟糕的情况就是,内存中到处都是碎片,在给一个大对象分配空间的时候没有内存可用,实际上内存是够的。消除碎片的方式就是「压缩」。...「使用串行收集器」 它是 J2SE 5.0 版本 HotSpot 虚拟机在非服务器级别硬件的默认选择。你也可以使用 -XX:+UseSerialGC 来强制使用串行收集器。
1.清理前内存使用情况 free -m 2.开始清理 echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成!...查看内存条数命令: dmidecode | grep -A16 "Memory Device$" ++++++++++++++++++++++++++++++++++++++++++++++++++...先说下free命令怎么看内存 [root@yuyii proc]# free total used free shared buffers cached Mem: 515588 295452...: total——总物理内存 used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存 free——完全未被使用的内存 shared——应用程序共享内存 buffers...: 前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值 后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值 note:
虚拟机栈 基本知识 Java 虚拟机栈是什么? Java 虚拟机栈(Java Virtual Machine Stack),早期也叫 Java 栈。...堆 基本知识 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。...此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。...(和配置的最大堆内存有关,且受制于物理内存大小。...TLAB 分配过程 方法区 基本知识 方法区可以看作是一块独立于 Java 堆的内存空间。
最后,还有一类不受JVM虚拟机管控的内存区,这里也提一下,即:堆外内存 ? 可以通过Unsafe和NIO包下的DirectByteBuffer来操作堆外内存。...如上图,虽然堆外内存不受JVM管控,但是堆内存中会持有对它的引用,以便进行GC。 提一个问题:总体来看,JVM把内存划分为“栈(stack)”与“堆(heap)”二大类,为何要这样设计?...思路也很简单,将内存对半分,总是保留一块空着(上图中的右侧),将左侧存活的对象(浅灰色区域)复制到右侧,然后左侧全部清空。避免了内存碎片问题,但是内存浪费很严重,相当于只能使用50%的内存。...所以剩下3种颜色的虚拟内存,可以都映射到同1段物理内存(即:映射复用)。...3.8.7 支持NUMA架构 NUMA是一种多核服务器的架构,简单来讲,一个多核服务器(比如:2core),每个cpu都有属于自己的存储器,会比访问另一个核的存储器会慢很多(类似于就近访问更快)。
此类题一般会给出raw文件、wmem文件、img文件、dmp文件等内存镜像文件,我们则需要用volatility来解决这种问题 volatility常用命令: imageinfo 命令:用于获取内存镜像的摘要信息...下载附件得到一个流量包,wireshark打开导出http,得到一个php文件,将其扔进winhex把 504B0304 前的多余字符删去并保存,改文件后缀为zip后解压,可得到一个vmem文件,接下来为内存取证的过程...首先用 imageinfo 命令分析内存镜像文件 volatility -f data.vmem imageinfo 得知操作系统为 WinXPSP2x86 通过 pslist 命令查看所有进程
今天,我们继续「计算机底层知识」的探索。我们来谈谈关于「小数运算」的相关知识点。 如果,想了解该系列的文章,可以参考我们已经发布的文章。如下是往期文章。...文章list 计算机底层知识之CPU 计算机底层知识之二进制 计算机底层知识之处理小数 你能所学到的知识点 ❝ 内存的物理机制 「推荐阅读指数」 ⭐️⭐️⭐️⭐️⭐️ 内存的逻辑模型是楼房 「推荐阅读指数...由于处理对象(数据)是存储在「内存」和「磁盘」上的,因此我们今天来聊聊内存和磁盘。 ---- 内存的物理机制 ❝内存实际上是一种名为「内存IC」的电子元件。...又因为1024=1K,所以内存IC的容量就是1KB。 向内存IC读写数据 写入数据 假设我们往内存IC中写入1字节的数据。...❞ ---- 内存的逻辑模型 ❝内存的逻辑模型是楼房 ❞ 上图表示的是,内存为1KB时,有1024层的楼房,每层都有1字节的数据。并且地址的值是从上往下逐渐变大的。
咱们先来看几个问题: 1、CPU可以直接操作内存吗? 可能一大部分老铁肯定会说:肯定的啊,不能操作内存怎么读取数据呢。 其实如果我们用这聪明的大脑想一想,咱们的台式主机大家肯定都玩过。...上面CPU和内存条是两个完全独立的硬件啊,而且CPU也没有任何直接插槽用于挂载内存条的。...也就是说,CPU和内存条是物理隔离的,CPU并不能直接的访问内存条,而是需要借助主板上的其他硬件间接的来实现访问。...SMP架构是一种平行的架构,所有CPU Core都被连接到一个内存总线上,它们平等访问内存,同时整个内存是统一结构、统一寻址的。...架构中引入了一个重要的新名词——Node 一个Node由一个或者多个Socket Socket组成,即物理上的一个或多个CPU芯片组成一个逻辑上的Node 我们来看一个Dell PowerEdge系列服务器的
在深入了解服务器 CPU 的型号、代际、片内与片间互联架构一文中我们了解了服务器 CPU 的内部架构。在其中我们看到有一个内存控制器。 关于CPU内存控制器中会有很多专技术细节。...而且不再像之前一样要求每个内存颗粒传输距离相等,工艺复杂度因寄存缓存器的引入而下降,使得容量也可以提高到 32 GB。主要用在服务器上。 下图是一个服务器RDIMM 32 GB 内存条。...这个服务器内存条不光正面有很多内存颗粒,连背面也有。可见服务器内存的颗粒数量比普通笔记本电脑、个人台式机的颗粒都要多很多。...另外一台服务器经常是连续要运行几个月甚至是几年。因此总的来说,服务器对稳定性的要求极高,不允许比特翻转错误发生。 ECC 是一种内存专用的技术。...服务器 CPU 支持 RDIMM(带寄存器双列直插模块)和 LRDIMM(低负载双列直插内存模块)内存。这两种内存单条都有更大的容量。
什么是服务器? 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其他客户机提供计算或应用服务。...ECS 服务器 用户可以根据自己的需要选定主机容量、CPU 能力、内存大小、带宽以及购买时长等,因此也叫弹性计算服务器,ECS 在使用上和独立的服务器没有区别,企业可以购买符合自己需求的 ECS...服务器,节约维护服务器的成本 VPS 服务器 虚拟专用服务器,即将一台独立服务器通过虚拟技术分割为若干个虚拟服务器,每个 VPS 可以独立安装系统。...拥有独立 IP,实现不同 VPS 之间磁盘空间、内存、CPU、资源、进程和系统配置的隔离,为用户和应用程序模拟出独占使用计算机资源的体验,但总体性能和付费不如 ECS 虚拟主机 将一台已安装操作系统和安全防范的服务器通过技术手段分割成独立的空间...CPU 和内存 代表服务器的运行计算能力,也就是对网站程序的响应速度和效率 独立 IP 和共享 IP 独立 IP 是指一个服务器拥有自己独立的 IP 地址,共享 IP 是指多个服务器共用一个公网
领取专属 10元无门槛券
手把手带您无忧上云