
C++
文章平均质量分 87
程序员学习随笔
记录数据库原理,源码阅读,常见通讯协议分析,分布式内容介绍,计算机基础知识和一些设计思考记录。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 对象模型:虚函数表的底层结构与多态实现
多态作为面向对象三大核心特性(封装、继承、多态)之一,其可以分为静态多态(模板,重载,重定义)和动态多态。理解动态多态的底层实现原理对于掌握C++对象模型有重要意义。本文将从虚函数表、内存布局、调用的汇编代码等底层结构出发,深入解析动态多态的实现机制。原创 2025-08-01 09:25:14 · 691 阅读 · 0 评论 -
C++性能优化:分支预测
在现代的CPU架构中,影响性能的两大很关键的要素就是cache和分支预测(指令级并行),cache相关在前面文章介绍过,分支预测将在本文进行说明。主要从分支预测的概念,原理,优化技巧和实际案例等方面进行分析。原创 2025-07-25 09:34:20 · 1126 阅读 · 0 评论 -
C++11:unique_ptr的设计哲学(转移而不拷贝)
unique_ptr是C++11引入的一种独占所有权的智能指针,其提供了自动管理内存的能力,同时保持有和裸指针相近的性能开销。本文将原理,源码和使用来进行介绍。原创 2025-07-18 09:05:01 · 371 阅读 · 0 评论 -
C++11:weak_ptr的设计哲学(观察而不拥有)
循环引用是开发中的常见问题,特别是在使用引用计数(shared_ptr)时尤为突出,为了解决这种问题,C++引入weak_ptr,其通过“观察而非拥有”的思想,来解决循环引用的问题。本文将对weak_ptr进行原理和源码解读、带给我们的设计启示以及如何与shared_ptr进行协作等方面进行介绍。原创 2025-07-11 09:20:48 · 628 阅读 · 0 评论 -
C++11:shared_ptr的设计哲学(原理+源码):内存安全和性能的架构权衡
在C++编程世界中,内存管理是一把双刃剑,手动管理带来了极致的内存控制能力,但也带来了像内存泄漏,野指针等问题;自动垃圾回收虽然安全,但却会带来一定的性能损耗。本文将介绍C++11引入shared_ptr,通过对其原理和源码的解析,来了解其对于内存安全和性能的权衡。原创 2025-07-04 09:05:34 · 686 阅读 · 0 评论 -
C++可调用对象的统一:深入解析invoke的原理
在C++编程中,可调用对象的种类有很多(比如普通函数、函数指针、成员函数指针等),在C++17之前,调用这些可调用对象需要使用各自特定的语法,为了解决这个问题,C++17引入了invoke函数模板,通过一种统一方式调用各种可调用对象,让开发者无需关心可调用对象的具体类型,从而简化代码,提高代码通用性。本文将从invoke的原理,源码实现,使用三个方面进行深入解读。原创 2025-06-20 09:12:18 · 520 阅读 · 0 评论 -
现代C++ :使用SIMD 指令集实现高性能计算
提升效率的两种常见方式,一个是增大并发,一个是增大扇入扇出。在前面文章中介绍了多线程并发相关的内容,也就是增大并发常用的内容;本文将介绍的SIMD就和增大扇入扇出相关了,也就是一次处理更多的数据,增加数据级的并行。本文将从SIMD的概念,原理和使用方式对其进行介绍。原创 2025-06-13 09:24:53 · 1171 阅读 · 0 评论 -
C++11:原子操作与内存顺序:从理论到实践的无锁并发实现
在并发编程中,原子性、可见性和有序性是确保程序正确执行的三大特性。常见的保证这三个特性的操作是通过加锁来限制资源的访问,但这种方式会带来性能的降低,所以无锁编程变的日益常见,本文将对原子性、可见性和有序性进行介绍,同时介绍原子操作和内存顺序从而实现无锁的并发。原创 2025-06-06 08:54:47 · 1454 阅读 · 0 评论 -
C++11:深入理解完美转发
本文将对C++11中完美转发特性进行详细分析,主要对什么是完美转发(概念),完美转发产生原因(动机)以及完美转发的原理(实现,主要包含万能引用,引用折叠以及std::forward函数),应用进行介绍。原创 2025-05-23 09:08:55 · 1072 阅读 · 0 评论