2025年8月18日

十年大厂员工终明白:MySQL性能优化的尽头,是对B+树的极致理解

摘要: 存储引擎 存储引擎是数据库管理系统(DBMS)或键值存储系统的核心组件,它定义了数据在持久化存储介质上如何组织、存储、检索和管理。不同的存储引擎针对特定负载(如读密集型、写密集型、混合型)和数据模型(如关系型、键值型、文档型)进行优化。 目前常见的存储引擎使用的存储数据结构有如下几种。 1)哈希表( 阅读全文

posted @ 2025-08-18 00:21 poemyang 阅读(1817) 评论(1) 推荐(2)

2025年8月14日

硬盘性能提升100倍的秘密:看懂顺序I/O的魔力

摘要: I/O缓存 局部性原理 局部性原理(Principle of Locality)指在程序执行过程中,倾向于访问某些局部特定的数据或指令,而不是随机地访问整个内存空间。这是缓存技术得以有效的根本原因。 1)时间局部性(Temporal Locality):如果一个数据项被访问,那么在不久的将来它很可能 阅读全文

posted @ 2025-08-14 23:02 poemyang 阅读(738) 评论(0) 推荐(2)

2025年8月12日

从纳秒到毫秒的“时空之旅”:CPU是如何看待内存与硬盘的?

摘要: 在数据暴涨时代,如何高效存储和管理海量数据已成为应用系统的核心挑战。这不仅关乎读写性能,更涉及并发场景下性能与持久化之间的平衡。要应对这一挑战,既需要理解不同存储介质的物理特性与性能边界,也需通过数据结构、存储模型与操作系统机制的协同设计,达成技术上的最优平衡。 本文将从计算机系统的分层存储体系这一 阅读全文

posted @ 2025-08-12 08:19 poemyang 阅读(564) 评论(0) 推荐(2)

2025年8月11日

性能优化之母:为什么说“方法内联”是编译器优化中最关键的一步棋?

摘要: 方法内联 方法内联(Method Inlining)是编译器在进行优化时,将被调用方法的代码直接嵌入到调用点,以替代方法调用指令的过程。它不仅消除了方法调用的开销,还为后续的优化(如常量传播、死代码消除等)创造了条件。 Java程序的方法调用会涉及到如下步骤: 1)保存当前方法的程序计数器(返回地址 阅读全文

posted @ 2025-08-11 08:52 poemyang 阅读(432) 评论(0) 推荐(2)

2025年8月8日

new出来的对象,不一定在堆上?聊聊Java虚拟机的优化技术:逃逸分析

摘要: 逃逸分析(Escape Analysis)是一种静态程序分析技术,主要用于判定对象的可见范围(Visibility)与生命周期(Lifetime)。该技术是现代即时编译器实现局部化优化、提升内存使用效率、降低同步成本的基础。 通俗来说,逃逸分析的核心在于回答这样一个问题:某个对象是否可能“逃逸”出它 阅读全文

posted @ 2025-08-08 08:04 poemyang 阅读(286) 评论(0) 推荐(1)

2025年8月7日

解锁硬件潜能:Java向量化计算,性能飙升W倍!

摘要: 机器相关的编译优化 与机器相关的编译优化常见的有指令选择(Instruction Selection)、寄存器分配(Register Allocation)、窥孔优化(Peephole Optimization)等。这些机器级优化通常发生在中间表示向目标代码生成之间的后端编译阶段。 与源代码层面的优 阅读全文

posted @ 2025-08-07 10:03 poemyang 阅读(636) 评论(1) 推荐(1)

2025年8月6日

Java编译器优化秘籍:字节码背后的IR魔法与常见技巧

摘要: 中间表达形式 编译器通常被划分为前端编译器和后端编译器两个部分。前端编译器负责对源代码进行词法分析、语法分析和语义分析,生成中间表达形式(Intermediate Representation ,IR)。这种由前端生成的IR被称为高级中间表达形式(High Intermediate Represen 阅读全文

posted @ 2025-08-06 09:51 poemyang 阅读(524) 评论(0) 推荐(1)

2025年8月5日

“代码跑着跑着,就变快了?”——揭秘Java性能幕后引擎:即时编译器

摘要: HotSpot虚拟机内部集成了两个即时编译器,分别被称为C1编译器(Client Compiler/ Quick Complier)和C2编译器(Server Compiler)。自Java 9起,-server模式(即启用C2编译器或分层编译)是默认选项,-client选项通常会被忽略。 C1编译 阅读全文

posted @ 2025-08-05 08:35 poemyang 阅读(722) 评论(0) 推荐(0)

2025年8月4日

“同声传译”还是“全文翻译”?为何HotSpot虚拟机仍要保留解释器?

摘要: Java虚拟机采用的是基于栈的指令集架构,这意味着Java虚拟机主要通过解释执行基于栈的字节码来运行Java程序。尽管Java虚拟机采取了一些优化措施,如栈顶缓存(Stack Top Cache),将栈顶元素缓存到寄存器中以减少对内存的频繁访问,但这些优化手段并不能从根本上解决基于栈的指令集执行效率 阅读全文

posted @ 2025-08-04 09:47 poemyang 阅读(585) 评论(0) 推荐(1)

2025年8月1日

a+b=c,处理器一步搞定,Java虚拟机为啥要四步?

摘要: 基于栈的运行方式 Java虚拟机的执行过程基于字节码指令,可以将其视为对操作系统的一种抽象模拟。Java虚拟机具有自己的指令集和运行环境,包括堆(Heap)、栈(Stack)、方法区(Method Area)等。因此,Java虚拟机的指令操作流程与处理器的指令操作流程有许多相似之处,主要包括取指令、 阅读全文

posted @ 2025-08-01 10:46 poemyang 阅读(584) 评论(0) 推荐(1)

导航