首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
09cakg86qfjwymvm8cd3h1dew
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
09cakg86qfjwymvm8cd3h1dew
2年前
关注
G1 GC:分区回收算法说的是什么?
# 分区算法的堆结构 G1 GC 的堆结构: <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7a0...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
分代算法:基于生命周期的内存管理
# Mark-Sweep 算法 在 Mark 阶段,垃圾回收器遍历活跃对象,将它们标记为存活。在 Sweep 阶段,回收器遍历整个堆,然后将未被标记的区域回收。 Mark ...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
Scavenge:基于copy的垃圾回收算法
基于 copy 的 GC 算法最早是在 1963 年,由 Marvin Minsky 提出来的。这个算法的基本思想是把某个空间里的活跃对象复制到其他空间,把原来的空间全部清...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
垃圾回收:如何避免内存泄露
GC 算法中最重要的两个角色就是 Mutator 和 Collector。 Mutator 的本意是改变者。因为我们所写的所有 Java 程序,都有可能改变对象的存活和死亡...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
Java内存模型:Java中的volatile有什么用
内存模型是用来描述编程语言在支持多线程编程中,对共享内存访问的顺序。 Happens-Before 的规则: <img src="https://p3-juejin.byt...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
NUMA:非均匀访存带来了哪些提升与挑战
不同的 CPU 访问不同地址主存的速度各不相同,我们把采用这种设计的内存叫做非一致性访存(Non-uniform memory access,NUMA)。 物理内存最重要的...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
内存模型:有了MESI为什么还需要内存屏障
CPU 的设计者为每个核都添加了一个名为 store buffer 的结构,store buffer 是硬件实现的缓冲区,它的读写速度比缓存的速度更快,所有面向缓存的写操作...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
MESI协议:多核CPU是如何同步高速缓存的
从缓存和内存的更新关系看,写策略分为写回和写直达; * 写回,对缓存的修改不会立刻传播到主存,只有当缓存块被替换时,这些被修改的缓存块,才会写回并覆盖内存中过时的数据; *...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
CPU Cache:访存速度是如何大幅提升的
离处理器越近,访问速度就越快,造价也就越高,同时容量也会更小。缓存是处理器和内存之间的一个桥梁,通常分为多层,包括 L1 层、L2 层、L3 层等等。缓存的速度介于处理器和...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
存储电路:计算机存储芯片的电路结构
组合逻辑电路是指,输出仅由输入信号的状态决定的电路。而时序逻辑电路是指,电路的输出值同时依赖于电路过去的状态和现在的输入,所以时序逻辑电路中含有用于记忆电路状态的存储单元。...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
内存虚拟化:云原生时代的奠基者
在虚拟化技术中涉及的有三个核心角色,分别是宿主机,客户机和虚拟机监控器。宿主机,也被称为 Host,一般指代物理主机。客户机,也被称为 Guest,是指运行在宿主机上的虚...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
即时编译:高性能JVM的核心秘密
通常,Java 语言虚拟机包含两大核心模块:执行器和内存管理器,这里的执行器就是专门用来执行字节码的。 在 Hotspot 里,解释器主要分为两大类:cpp 解释器和模板解...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
页中断:fork、mmap背后的保护神
页中断和普通的中断一样,它的中断服务程序入口也在 IDT 中,但它是由 MMU 产生的硬件中断。页中断有两类重要的类型:写保护中断和缺页中断。正是这两类中断在整个系统的后台...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
深入理解堆:malloc和内存池
malloc 实现的基本原理是先向操作系统申请一块比较大的内存,然后再通过各种优化手段让内存分配的效率最大化。在 glibc 的实现里,malloc 函数在向操作系统申请堆...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
动态链接(下):延迟绑定与动态链接器
# patch code 技术 对于一个 class 文件,只有当 hotspot 第一次使用它的时候,它才会被加载进来。 在即时编译 A 方法的时候要调用 B 方法,但这...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
动态链接(上):地址无关代码是如何生成的
将常用的公共的函数都放到一个文件中,在整个系统里只会被加载到内存中一次,无论有多少个进程使用它,这个文件在内存中只有一个副本,这种文件就是动态链接库文件。 它在 Linux...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
静态链接:变量与内存地址是如何映射的
链接器的作用就是为符号转换成地址,一般来说可以分为三种情况: 1. 生成二进制可执行文件的过程中。这种情况称为静态链接; 2. 在二进制文件被加载进内存时。这种情况是在二进...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
栈的魔法:从栈切换的角度理解进程和协程
执行单元是指 CPU 调度和分派的基本单位,它是一个 CPU 能正常运行的基本单元。常见的执行单元有进程,线程和协程三种。 进程有自己独立的内存空间和页表,以及文件表等等各...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
深入理解栈:从CPU和函数的视角看栈的管理
栈帧本质上是一个函数的活动记录。当某个函数正在执行时,它的活动记录就会存在,当函数执行结束时,活动记录也被销毁。 在一个函数执行的时候,它可以调用其他函数,这个时候它的栈帧...
0
评论
分享
09cakg86qfjwymvm8cd3h1dew
2年前
关注
内存布局:应用程序是如何安排数据的
一个程序的机器码会被组织到同一个地方,这个地方就是代码段。 数据段存放的是程序中已经初始化且不为 0 的全局变量和静态变量。 对于未初始化的全局变量和静态变量,因为编译器知...
0
评论
分享
下一页
个人成就
文章被点赞
16
文章被阅读
44,152
掘力值
2,946
关注了
11
关注者
4
收藏集
1
关注标签
19
加入于
2016-08-25