排序
为什么数组查询的复杂度为O(1)?
数组必须要内存中一块连续的空间,并且数组中必须存放相同的数据类型。 比如我们创建一个长度为10,数据类型为整型的数组,在内存中的地址是从1000开始,那么它在内存中的存储格式如下。 由于每...
JVM内存模型
根据 JVM8 规范,JVM 运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈五个部分。 还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 JVM的内存结构主要...
什么是Java内存模型(JMM)?
JMM即Java Memory Model,Java内存模型。 它的基本目标是: 确保基本的读写操作的原子性:多个线程对一个变量的读写操作是不可分割的 确保线程的可见性:一个线程对共享变量的修改,能够被其他...
Redis是单线程,为什么查询速度这么快?
今天咱们聊聊Redis,毕竟很多人一提到它,脑海里就闪过“单线程”“高性能”这样的标签。 你是不是也有这样的疑惑:Redis明明是单线程的,为什么查询速度还这么快? 别急,看完这篇文章你就明白...
如何判断操作系统有没有在内存替换?
我们可以使用sar -B 1命令来观察: 图中红色框住的就是后台内存回收和直接内存回收的指标,它们分别表示: pgscank/s : kswapd(后台回收线程) 每秒扫描的 page 个数。 pgscand/s: 应用程序在内...
操作系统内存不足的时候会发生什么?
应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。 当应用程序读写了这块虚拟内存,CPU就会去访问这个虚拟内存, 这时会发现这个虚拟内存没有映射到...
怎么判断服务器内存是否够用?
使用 free 命令查看内存使用情况 使用 free -m 命令可以查看内存的总体使用情况,输出结果会大致如下: total used free shared buff/cache available Mem: 7982 1746 2523 155 3703 5818 Swap:...