- 博客(797)
- 资源 (14)
- 收藏
- 关注
原创 c语言链表(插入,删除,更改,查找)
初始化链表int main( ) { int i; struct link // 定义链表的类型 { int data; // 数据区 struct link *next; // 地址区用来存放下一个元素的地址 }; struct link *p = (struct link *) malloc(sizeof(struct link)); // 创建一个头结点 就是指向链表的第一个元素 struct link *te
2021-05-12 23:31:04
5415
16
原创 C++模板元编程+变长编码+字段索引:实现一个支持版本兼容的序列化库
本文介绍了一个高性能C++序列化框架,采用TLV二进制编码格式实现零拷贝读取和版本兼容性。核心特点包括:1)TLV自描述格式支持灵活扩展;2)零拷贝设计通过BufferView直接解析原始数据;3)字段ID机制实现版本兼容;4)完善的字节序处理;5)变长整数编码优化空间利用率。框架提供基础类型支持、CRC校验、字段索引等功能,并包含IDL代码生成工具。通过学习该项目可掌握C++模板元编程、TLV编码、变长整数算法等核心技术,适用于需要高性能序列化的场景。
2025-12-12 13:57:01
450
原创 C++并发编程工作窃取算法:彻底搞懂memory_order_acquire/release
无论你是希望在项目中使用高性能线程池,还是想深入学习并发编程的精髓,都是一个值得反复学习的案例。通过编译、运行、修改其示例代码,并尝试将其应用到自己的项目中,你将对高性能并发编程有更深刻的理解和掌握。链接: https://pan.baidu.com/s/1-hjRrJNGiC5PV-XnQu6imA 提取码: ohh2。
2025-12-11 12:21:08
8
原创 四种负载均衡算法+一致性哈希环,写了一个负载均衡器,理解分布式系统的精髓
本文介绍了一个生产级C++负载均衡器框架,实现了轮询、加权轮询、最少连接和一致性哈希四种经典算法。框架包含健康检查、故障转移、实时统计等企业级特性,采用线程安全设计和原子操作保证并发安全。通过策略模式支持算法动态切换,提供服务器动态管理能力。文章详细分析了各算法适用场景、核心实现技术(如Nginx平滑加权轮询、一致性哈希虚拟节点)以及性能优化要点(原子操作、锁粒度控制等)。该框架适用于分布式缓存、Web服务、CDN等需要负载均衡的场景。
2025-12-10 14:59:19
7
原创 C++异步IO库完整实现:从内核特性到业务封装的案例
本文介绍了io_uring异步IO库的设计与实现,重点分析了传统IO模型的局限性和io_uring的创新架构。项目采用三级分层设计:底层封装io_uring核心功能,中间层提供文件IO接口,上层实现高频日志系统。关键技术包括双环形队列的零拷贝机制、SQ轮询和IO轮询模式、批量提交优化等。通过线程分离架构、请求跟踪机制和批量处理策略,实现了高性能异步IO操作。该设计显著降低了系统调用开销,提升了IO吞吐量,为开发者提供了学习异步编程、并发控制和系统优化的典型案例。
2025-12-09 21:18:48
939
原创 为什么说掌握C++线程本地存储,是从初级到高级C++工程师?
在多核处理器架构下,多线程编程常面临数据竞争问题。本文介绍了一个生产级C++ TLS管理框架,通过线程本地存储(TLS)技术实现无锁访问。框架提供两种TLS实现方式:基于C++11 thread_local关键字的现代方法和基于POSIX pthread_key的传统方法,并构建了计数器、缓存、对象池等实用工具类。核心组件ThreadLocalWrapper通过实例ID机制和首次使用构造模式,解决了多实例共享变量的问题,同时保证线程安全。该框架为高性能应用开发提供了有效的无锁解决方案。
2025-12-08 14:37:12
37
原创 使用C++从零写一个SIMD字符串匹配库:让CPU“并行思考“
本文介绍了一个利用SIMD技术优化字符串匹配的C++库。通过SIMD指令集(如SSE2、AVX2)实现并行字符比较,单字符查找性能可提升2-10倍。文章详细解析了核心算法:包括字符广播、并行比较、掩码提取等关键步骤,并介绍了跨平台适配策略。针对子串查找,提出了"筛选-验证"的二阶段优化策略,先通过SIMD快速筛选候选位置,再进行精确验证。该库支持x86和ARM架构,能自动选择最优指令集实现高效字符串匹配。
2025-12-07 15:47:38
51
原创 使用C++从零手写Actor框架:最适合C++程序员进阶的实战项目
本文介绍了一个C++实现的Actor模型框架,详细解析其设计原理和实现方法。该框架采用分层架构设计,包含消息层、Actor层、调度层等核心组件,支持无锁并发、容错隔离等特性。关键实现包括类型安全的消息系统、线程安全的消息队列、灵活的调度策略等。文章深入分析了消息流转路径、核心代码实现,并展示了框架提供的丰富功能,如TypedActor、FSM、Router等。通过该框架,开发者可以学习到Actor模型的核心思想、C++高级编程技术以及多种并发设计模式,适用于构建高性能、高可靠的分布式系统。
2025-12-06 17:08:45
24
原创 C++纤程调度器深度实现:单机支撑10万并发,内存占用却只有线程的1/10
摘要 本文介绍了一个基于用户态协程(Fiber)的M:N调度器项目,该调度器支撑了一个高性能交易撮合引擎。项目采用M:N调度模型,将大量逻辑任务映射到少量系统线程上,实现了低延迟、高吞吐和低内存占用的并发处理能力。文章重点剖析了用户态协程与系统线程的本质区别,包括调度方式、栈管理和切换开销等核心差异。项目实现了协作式调度、轮询负载均衡、零拷贝切换等关键技术,并构建了支持多种订单类型的高频交易撮合引擎。通过深入分析Fiber类的实现细节,包括上下文初始化、栈分配机制以及resume/yield切换逻辑,展示了
2025-12-05 20:40:44
30
原创 CUDA内存优化的第一性原理:搞懂缓存一致性,其他都是细节
本文探讨了GPU中只读缓存(纹理缓存)的设计原理与使用方法。只读缓存通过绕过缓存一致性检查,为确定只读的数据提供高效访问路径。文章介绍了三种使用方式:const __restrict__限定符、__ldg()内置函数和纹理对象,并分析了最佳应用场景,包括Warp内广播、2D/3D空间局部性访问和随机访问模式。特别指出在Volta架构后,L1与纹理缓存已统一,但纹理内存的硬件插值和边界处理优势仍存。最后以图像缩放为例,对比传统全局内存访问与纹理内存方案,展示纹理内存在边界处理和硬件插值方面的独特优势。
2025-12-04 19:42:00
16
原创 你以为加了共享内存就完事了?不理解Bank结构你只是在写“看起来很快“的代码
本文深入解析了CUDA共享内存的关键优化技术。共享内存作为GPU内存层次中性能最高的可编程内存,通过Bank结构实现高带宽并行访问。文章详细剖析了共享内存的硬件定位、Bank结构原理和访问模式优化方法,并以矩阵转置为例展示了消除Bank冲突的优化技巧。从Naive实现到共享内存优化,再到Bank冲突消除,逐步揭示了高性能CUDA编程的核心要点,帮助开发者理解底层硬件机制,实现算法性能的显著提升。
2025-12-03 20:47:00
36
原创 把Kahn算法吃透:就掌握了所有构建系统和调度引擎的核心
本文介绍了一个基于C++的DAG任务调度器实现,其核心功能包括依赖关系管理、自动拓扑排序、并行任务调度和失败处理。系统采用Kahn算法进行拓扑排序,支持任务级重试和两种失败策略(快速失败/继续执行)。通过高性能线程池实现任务并发执行,利用现代C++特性如std::any、完美转发和future/promise模式实现类型安全和异步操作。该调度器适用于构建系统、数据处理流水线等需要管理复杂依赖关系的场景,能够自动计算执行顺序、最大化并行度并优雅处理失败传播。文章详细解析了线程池设计、任务调度算法等核心组件的实
2025-12-03 14:49:49
22
原创 用了override和final,我的C++代码再没出过这类Bug
override几乎没有使用成本,却能在编译期拦住一大类隐蔽Bug,建议所有重写虚函数的地方都无脑加上,没有理由不加。final是一种防御性设计工具,用来表达"禁止继承"或"禁止重写"的意图,用得好可以让设计更清晰,用得不好可能限制未来扩展,谨慎使用。这两个关键字改变不了C++虚函数的底层机制,但它们让编译器多了一双眼睛,帮你在代码写完的那一刻就发现问题,而不是等到上线之后。编译期能发现的错误,就别留到运行时。
2025-12-02 22:39:31
997
原创 学完这个C++字符串池,你对内存模型和线程安全的理解将超越你的同事
在现代软件系统中,字符串操作无处不在。配置系统的键名查找、编译器的符号表管理、JSON解析器的字段匹配、事件系统的名称比对,这些场景都有一个共同特点:大量重复的字符串被反复比较和存储。传统的字符串比较是逐字符进行的,时间复杂度为O(n),其中n是字符串长度。当系统需要在一个包含10000个符号的符号表中查找变量名时,每次查找可能需要进行数千次字符串比较。对于一个长度为50字符的配置键名,每次比较都需要执行最多50次字符比对操作。这种开销在高频场景下会成为性能瓶颈。更严重的是内存浪费问题。一个典型的JSON
2025-12-02 17:14:28
37
原创 io_uring + C++20协程:看完你就知道高性能IO该怎么写
本文深入探讨了现代高性能服务端编程中的IO优化技术,重点分析了Linux io_uring接口和C++20协程的协同应用。通过对比传统IO方案的局限性,详细介绍了io_uring的双环形缓冲区设计和批量处理机制。在C++20协程方面,系统阐述了协程帧、Promise类型和Awaiter机制的核心概念。文章还展示了一个生产级异步文件IO库的设计,涵盖io_uring封装、协程支持、异步文件操作、日志系统和事件循环等模块。该项目不仅提供了高性能IO解决方案,还完整演示了系统编程、C++高级特性、并发编程和软件架
2025-12-01 17:17:08
842
原创 我用400行C++从零写事件系统:发布-订阅模式才是真正的解耦神器
摘要: 本文介绍了一个基于C++的高性能事件系统,采用发布-订阅模式实现模块解耦,支持异步分发、优先级处理和线程安全。系统通过中央调度器(EventSystem)管理事件,发布者与订阅者无需直接依赖。关键技术包括: 异步事件处理:事件通过优先级队列(std::priority_queue)分发,工作线程独立处理,避免阻塞发布者线程。 线程安全机制:使用互斥锁(std::mutex)和条件变量(std::condition_variable)保障多线程环境下的数据一致性。 类型安全与生命周期管理:基于模板和s
2025-11-30 15:45:12
31
原创 使用C++从零手写一个生产级KV缓存:把LRU、LFU、分段锁讲透,最硬核的缓存案例
本文介绍了一个高性能C++ KV缓存系统的设计与实现。该系统采用LRU/LFU双淘汰策略,支持TTL自动过期和分段锁优化,可显著降低高并发场景下的数据库查询压力。核心设计包括:1)基于双向链表和哈希表实现O(1)复杂度的LRU;2)最小堆+惰性更新实现LFU;3)分段锁技术降低并发冲突;4)读写锁优化读多写少场景;5)后台线程定期清理过期数据;6)缓存预热机制避免冷启动问题。该系统具有线程安全、高性能等特点,适用于电商等互联网应用场景,能有效提升系统吞吐量并降低数据库负载。
2025-11-29 16:44:08
115
原创 300行C++代码从零实现无锁队列:环形缓冲区 + 序列号机制
无锁队列技术解析 本文深入剖析了一个高性能C++无锁队列的实现原理与优化技术。该队列采用环形缓冲区和序列号机制,通过CAS原子操作替代传统锁,有效解决了高并发场景下的性能瓶颈问题。核心创新点包括: 序列号机制:利用单调递增的序列号标识节点状态,巧妙解决了ABA问题 指数退避策略:三阶段等待机制(自旋/yield/睡眠)自适应不同竞争程度 缓存优化:缓存行对齐和padding设计消除了伪共享问题 位运算优化:2的幂次容量设计将取模运算转换为高效位与运算 项目实现了多生产者多消费者模型,支持非阻塞操作和移动语义
2025-11-28 15:11:18
36
原创 这个C++限流器设计:从令牌桶到索引堆,我是如何解决限流器饥饿问题的
本文提出了一种智能限流器设计方案,通过结合贪心调度算法、令牌桶机制和动态优先级更新,有效解决了传统限流器在吞吐量与公平性之间的矛盾。系统采用三层架构:令牌桶控制总体吞吐量,贪心调度保证高优先级请求优先处理,动态优先级更新防止低优先级请求饥饿。创新性地引入紧急通道、性价比优化和可配置权重策略,支持多优先级(0-10)、VIP用户特权、请求超时控制等功能。系统基于C++实现,采用索引优先队列(O(log n)复杂度)、原子操作和智能指针等技术,具有高性能和线程安全特性。通过预设配置模板(平衡型/优先级优先型/公
2025-11-27 16:12:46
53
原创 C++无锁编程实战:把Boyer-Moore算法彻底讲透,从投票机制到原子变量
本文介绍了一种基于Boyer-Moore多数投票算法的高效日志监控系统。该系统通过零拷贝设计、原子变量优化等技术,实现了O(n)时间复杂度和O(1)空间复杂度的日志分析,相比传统哈希表方法具有显著性能优势。核心功能包括多级告警阈值、滑动窗口监控、线程安全设计等,并支持百万级日志的实时处理。文章深入剖析了算法原理、工程实现及性能优化技巧,展示了如何将经典算法应用于实际生产环境,为高并发系统的日志监控提供了高效解决方案。
2025-11-26 21:05:31
925
原创 这个C++案例教你彻底搞懂图算法、并发编程和线程池设计
本文介绍了一个基于有向无环图(DAG)的C++任务调度系统,该系统能自动管理任务依赖关系并实现高效并行执行。系统核心包括:1)使用DFS三色标记法检测循环依赖;2)基于Kahn算法实现拓扑排序确定执行顺序;3)通过线程池实现任务并行执行。功能上支持任务依赖管理、自动拓扑排序、并行执行、循环依赖检测等,并提供了6种任务状态和详细的任务结果记录。该系统让开发者专注于业务逻辑,无需处理底层调度细节,可显著提升多核CPU利用率(理论性能提升可达4倍)。实现中涉及图算法、C++并发编程、线程池设计等核心技术,是现代软
2025-11-25 21:28:45
1008
原创 学完这个案例,你对C++ SIMD的理解将超越大部份的程序员
本文探讨了高性能随机数生成器在现代计算中的应用,重点分析了SIMD并行化技术对传统标量随机数生成器的性能提升。文章详细介绍了Xorshift128+和PCG两种算法的实现原理,展示了如何通过AVX2指令集实现"一次生成8个随机数"的并行计算。研究发现,在保持相同统计质量的前提下,SIMD优化版本可获得4-8倍的性能提升,有效解决了高吞吐量场景下的随机数生成瓶颈问题。文章还深入解析了SIMD编程的核心技术、内存对齐优化策略以及随机数生成算法的数学原理,为高性能计算领域的随机数生成提供了实用
2025-11-24 18:55:19
34
原创 学习这套C++公平调度算法:彻底搞懂公平队列的轮询调度与线程安全
摘要 本文介绍了一个基于C++实现的公平队列(FairQueue)设计方案,采用轮询(Round Robin)调度策略解决多租户环境下的资源公平分配问题。该队列通过为每个生产者维护独立任务队列,并采用轮流取任务的机制,有效防止高负载生产者导致其他生产者的任务饥饿。核心设计包括: 使用unordered_map+vector组合数据结构高效管理生产者队列 实现线程安全的入队/出队操作 支持队列容量限制和优雅关闭机制 提供任务等待时间统计等功能 项目具有显著学习价值,涵盖了并发编程、调度算法、现代C++特性等关
2025-11-23 15:37:30
65
原创 别再用 std::list 了,使用C++手搓一个零开销的侵入式链表,Linux内核20年前就给出了答案
本文介绍了一种基于Linux内核list_head设计思想的现代C++侵入式链表实现。该方案通过将链表节点指针直接嵌入数据对象内部,消除了传统链表实现中额外的内存分配开销和内存碎片化问题。文章详细剖析了侵入式链表的核心思想——container_of反向推导技术,展示了如何通过成员指针计算从链表节点获取完整对象地址。项目实现了类型安全、STL风格的接口,支持零额外内存开销的链表操作,并提供了LRU缓存和数据库缓冲池两个典型应用场景。相比传统链表,该设计具有更好的缓存局部性、更低的内存开销和更高的灵活性,特别
2025-11-22 14:28:48
28
原创 CUDA 内存优化深度解析:从 Coalesced 访问到数据结构设计
Warp 是 GPU 调度和执行的基本单位,包含 32 个线程。这个看似随意的数字 32,实际上是 GPU 硬件架构和性能权衡的结果。当你启动一个 CUDA kernel 时,每个 Block 会被分配到一个 SM (Streaming Multiprocessor,流多处理器)上执行。但 SM 并不是以线程为单位调度的,而是以Warp1 个 Block 包含 N 个线程(N 由你指定,最多 1024)N 个线程被分成若干个 Warp,每个 Warp固定 32 个线程。
2025-11-21 20:08:10
118
原创 零拷贝技术实战:跨平台封装mmap和MapViewOfFile,这可能是我见过最优雅的C++实现
内存映射文件技术与高性能时序数据库实现 摘要: 本文深入探讨了内存映射文件(Memory-Mapped File)技术在现代高性能应用中的关键作用。传统文件I/O操作存在用户态与内核态间数据拷贝的开销问题,而内存映射技术通过将文件直接映射到进程虚拟地址空间,实现了"零拷贝"访问。项目实现了一个跨平台内存映射文件管理器,支持多种访问模式、动态扩容和性能优化特性,并在此基础上构建了高性能时序数据库。核心优势包括随机访问性能提升(可达99倍)、按需加载大文件处理、多进程共享等,同时分析了该技术
2025-11-20 17:28:51
42
原创 手搓C++延迟初始化重构多媒体引擎,启动性能提升N倍
摘要:本文探讨了现代C++中延迟初始化(Lazy Initialization)的设计与实现。该技术通过"按需加载"策略优化启动性能和内存管理,特别适用于包含多模块的大型应用。文章详细分析了线程安全的LazyObject和LazyContainer双层架构,涵盖std::call_once、读写锁等并发技术,以及智能指针、完美转发等现代C++特性。案例展示了一个生产级延迟初始化库,支持线程安全、类型安全且易用的延迟对象管理,可显著提升应用启动速度和内存使用效率。
2025-11-19 15:21:56
65
原创 用C++手写一个生产级实时监控系统:告诉你什么叫“零成本抽象“
摘要:本文介绍了一个高性能C++滑动窗口统计库的设计与实现。该库通过时间驱动的数据淘汰机制,使用std::deque实现高效过期数据清理,支持基础滑动窗口、固定窗口和高级滑动窗口三种统计模式,具备多时间粒度统计、流量异常检测等功能。文章深入剖析了数据结构选择、时间窗口语义、自动淘汰机制等核心原理,并提供了网络流量监控系统等真实应用场景示例,展示了如何构建一个生产级的实时统计系统。
2025-11-18 18:36:36
63
原创 这个被严重低估的C++算法,让我们的搜索引擎性能提升了好多倍
字符串处理是软件开发中的基础问题,涉及搜索、匹配、分析等多个场景。本项目实现了两种高效的字符串处理数据结构:后缀数组和后缀自动机。后缀数组通过倍增算法在O(n log n)时间内构建,支持快速模式匹配、最长重复子串查找等功能。后缀自动机采用在线增量构建算法,能在O(n)时间内处理字符串,提供更强大的子串查询能力。两种结构各有优势:后缀数组实现简单,适合静态文本处理;后缀自动机功能更强,支持动态更新。通过本项目的代码实现和示例,开发者可以掌握字符串处理的核心技术,应用于抄袭检测、代码分析、生物信息学等领域。
2025-11-17 15:40:42
257
原创 为什么GPU要搞Grid→Block→Thread三层结构?这个设计比你想的精妙100倍
摘要:本文通过三个递进的CUDA编程实验,解析GPU线程组织架构。实验1展示多块单线程模式(使用blockIdx索引),适合小规模任务但不支持线程协作;实验2演示单块多线程模式(使用threadIdx索引),支持线程同步但受块线程数限制(通常≤1024);实验3则结合多块多线程,通过blockIdx和threadIdx的复合索引实现灵活并行计算。三层线程组织(Grid→Block→Thread)的设计使CUDA能高效调度数万线程,兼顾并行规模与线程协作需求,充分发挥GPU计算潜能。
2025-11-16 21:10:43
35
原创 从0到1,使用C++实现一个智能对象池,学习源代码理解3个底层知识
高性能C++对象池:智能内存管理与并发优化 核心价值 本项目实现了一个生产级C++对象池,解决高并发系统中频繁对象创建/销毁导致的性能瓶颈。通过预分配和循环复用策略: 显著提升性能:将对象获取延迟从毫秒级降至微秒级 优化资源利用:避免内存碎片和分配器锁竞争 增强稳定性:提供可预测的性能表现 关键技术 智能指针自动管理:通过自定义删除器实现对象自动归还 线程安全设计:结合互斥锁和原子操作保证并发安全 弹性容量控制:支持自动扩容与最大容量限制 完善监控:零开销的原子计数器统计关键指标 应用场景 数据库连接池 网
2025-11-15 15:24:55
48
原创 C++高性能编程必学知识:从零手写时间轮,这是我见过最系统的讲解
在现代服务端编程中,定时器是一个不可或缺的基础组件。无论是网络服务器的连接超时管理、心跳检测,还是游戏引擎的技能冷却、定时任务调度,抑或是消息中间件的延迟投递,都离不开高效、可靠的定时器系统。然而,当系统需要管理成千上万甚至百万级别的定时器时,如何在保证性能的同时兼顾精度和资源消耗,成为了摆在开发者面前的重大挑战。传统的定时器实现往往面临以下困境:单一链表或数组实现的定时器列表需要O(N)时间复杂度来查找最近到期的任务;朴素的优先队列虽然能达到O(logN),但在海量定时器场景下仍然存在性能瓶颈;而直接使用
2025-11-14 14:14:51
48
原创 C++位运算能优化到什么程度?这个案例让内存暴降93.75%
高效状态管理:位图技术实现原理与优化 摘要 本文探讨了现代软件系统中大规模状态标记与权限控制的高效管理方案。传统基于数组、集合或哈希表的方法存在内存浪费严重(如布尔数组浪费87.5%空间)、查询性能低下的问题。通过采用位图技术(Bitmap),将状态信息压缩存储到位级别,实现了显著优化: 内存效率:1000个权限仅需125字节(传统方案需1000字节或更多) 性能优势:O(1)时间复杂度的位运算查询 硬件级优化:利用CPU缓存行对齐(alignas(64))、POPCNT指令等底层优化 实用算法:实现了汉明
2025-11-13 12:49:02
26
原创 C++CUDA实战:通过两个图像算法,搞懂了GPU编程
本教程通过图像处理案例系统讲解CUDA并行计算技术,包含灰度化和模糊算法从CPU到GPU的四个实现阶段:基准版本、CUDA入门、进阶优化和共享内存优化。详细阐述了GPU的SIMT并行模型、线程组织架构、内存层次结构等核心概念,通过性能对比展示优化效果。项目涵盖核函数编写、内存管理、共享内存使用等关键技术,并包含3x3盒式模糊、5x5高斯模糊等经典算法实现,帮助开发者掌握CUDA编程思维和优化方法。
2025-11-12 22:08:26
97
原创 这套C++ SIMD案例让你的代码直接翻倍:榨干CPU的最后一滴性能
本文深入探讨了现代计算中的SIMD(单指令多数据流)技术应用。通过分析CPU性能提升面临的物理极限,指出SIMD技术已成为现代处理器实现并行计算的关键手段。文章详细阐述了一个跨平台C++ SIMD向量化工具库的设计与实现,该库通过分层抽象架构、编译时平台检测、运行时CPU特性检测等技术,将复杂的底层SIMD指令封装为统一接口,实现"一次编写,到处运行"的目标。工具库提供了丰富的向量运算功能,包括算术运算、数学函数、数据访问接口和高级算法,并展示了在图像处理等场景下的实际应用。文章还总结了
2025-11-12 13:41:10
34
原创 Qt6+C++实战:通过这个数独学会回溯算法
本文介绍了一个基于Qt6框架的数独游戏应用开发项目。该项目采用MVC架构模式,前端使用QML构建现代化界面,后端通过C++实现高效算法。核心功能包括数独求解器(基于回溯算法)、题目生成器(确保唯一解)以及完整的游戏交互逻辑。项目实现了前后端分离、模块解耦,利用Qt的信号槽机制实现响应式更新。关键技术创新点包括:高效的规则验证算法、随机数独生成算法、以及通过Q_PROPERTY和Q_INVOKABLE实现的QML与C++交互机制。该项目不仅提供了完整的数独游戏体验,还展示了现代C++编程和Qt框架的最佳实践。
2025-11-11 17:34:59
36
原创 学完这个C++栈式内存分配器:你对内存管理的理解将超越95%的同事
栈式内存分配器:高性能内存管理的深度优化 本文提出了一种针对游戏引擎和高性能计算的栈式内存分配器解决方案,通过预分配连续内存和维护栈顶指针的方式,实现了比传统堆分配快5-10倍的性能提升。文章系统分析了传统堆分配的性能瓶颈,详细阐述了栈分配器的核心原理和设计优势,包括O(1)分配速度、零碎片化和批量释放等特性。该分配器特别适用于生命周期明确、临时性强、高频分配的数据场景,如游戏引擎中的粒子系统、碰撞检测中间结果等帧级临时数据。文中还介绍了类型安全接口、RAII自动管理等高级功能,并提供了完整的实现代码分析,
2025-11-11 12:47:27
29
原创 读多写少的多线程痛点:学完这个C++案例你就明白怎么解决了
本文介绍了一个基于 Copy-on-Write(COW)技术的高性能多线程容器实现。该方案针对读多写少场景,通过引用计数、写时复制和原子操作等技术,避免了传统互斥锁带来的性能瓶颈。核心思想是:多个对象共享数据,只在修改时才进行实际拷贝,大幅提升了读操作的并发性能。文中详细剖析了实现原理,包括引用计数机制、写时复制策略、快照隔离和内存顺序优化,并展示了具体代码实现。相比传统方案,COW容器在读密集型场景下可获得10-50倍的性能提升。
2025-11-10 15:42:43
35
原创 我用python+C++写了个密码检测引擎,学完这个项目理解底层算法
本文介绍了一个密码强度检测引擎,采用C++核心算法与Python接口结合的混合架构,实现了多维度密码安全评估。系统基于正则表达式模式匹配、信息熵计算、字典攻击模拟等技术,从字符多样性、随机性、抗攻击性等五个维度综合分析密码强度。项目包含完整的C++密码分析引擎、Python绑定接口和常见密码字典,支持pip安装和跨平台使用。通过现代C++特性和pybind11框架,实现了高性能计算与易用性的结合,可帮助开发者快速构建安全的密码检测系统,有效防范因弱密码导致的安全风险。
2025-11-09 17:43:33
100
原创 如何设计一个高性能并发队列?我把这个学习案例发给了你
本文提出了一种混合自旋-阻塞的并发队列(HybridQueue)设计,旨在解决传统并发队列在高负载场景下的性能瓶颈问题。该设计采用两阶段自适应策略:首先进行短暂的自旋等待(带指数退避机制),若失败则转为阻塞等待。通过环形缓冲区、缓存行对齐和精确内存顺序等优化技术,实现了低延迟与高吞吐的平衡。项目提供多生产者-多消费者支持、多种API操作模式及可配置的性能策略,适用于不同应用场景。核心创新在于动态适应系统负载,在低竞争时保持自旋队列的低延迟优势,在高竞争时快速转为阻塞模式避免CPU资源浪费。
2025-11-08 22:05:13
34
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅