logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入解析C++实时系统中的时间与定时器机制:从零手写高精度Rate与定时控制组件

摘要: 工业级系统(如自动驾驶框架Cyber RT)需要高精度、抗干扰的时间管理机制。尽管C++11提供了<chrono>库,但其冗长语法、时间跳变风险(如NTP同步导致回滚)以及物理单位不统一等问题促使开发者自建时间架构。核心组件包括: Duration:基于纳秒的时间段,封装线程休眠; Time:区分挂钟时间(Now())和单调时间(MonoTime()),避免回滚影响; Rate

文章图片
#c++
C++ 高性能并发编程:无锁哈希表 (AtomicHashMap) 的设计与实现

本文探讨了一种基于链表法的无锁哈希表(AtomicHashMap)实现。相比传统加锁方案,该设计利用CAS原子指令实现非阻塞操作,特别适合高并发读多写少场景。核心采用固定桶数组+有序单向链表结构,通过Dummy Head节点简化插入逻辑。关键点包括:1)无锁插入通过CAS保证链表完整性;2)原子更新value_ptr实现值替换;3)读操作完全无锁且无等待。文章同时指出内存安全风险,建议在高并发场景

文章图片
#c++
C++ 高性能并发编程:从零构建极速有界无锁队列 (RingBuffer)

本文探讨了从无界无锁队列到基于环形数组的有界无锁队列的优化过程。针对极速高频并发场景下动态内存分配的性能瓶颈,提出预分配连续内存方案,通过三游标设计(head_、tail_、commit_)解决MPMC并发中的脏读问题。重点分析了伪共享(False Sharing)对性能的影响,提出使用内存对齐(alignas)隔离高频变量以提升吞吐量。同时介绍了CPU退让(cpu_relax)和优化取模运算等底

文章图片
#c++
常见八大排序算法

介绍了八大常见排序算法及代码实现,以及部分优化策略

文章图片
#排序算法#算法#数据结构
C++ 高性能并发编程:手写一个无界无锁队列 (Unbounded Lock-Free Queue)

本文介绍了一种基于链表的高性能无界无锁队列实现。针对无界队列在并发环境下的内存管理难题,文章提出采用引用计数机制来安全回收节点内存,避免Use-After-Free问题。通过std::atomic和CAS操作实现线程安全的入队(Enqueue)和出队(Dequeue),其中生产者采用Wait-Free优化,消费者通过引用计数安全释放节点。文章还展示了如何与WaitStrategy策略结合,实现优雅

文章图片
#c++
C++ 高性能并发编程:如何优雅地让你的线程“等一等”?——详解多态等待策略 (WaitStrategy)

文章摘要: 本文探讨了并发编程中"生产者-消费者"模型的等待策略优化问题。针对不同业务场景对延迟和CPU消耗的不同需求,作者提出采用策略模式将等待逻辑从队列实现中解耦。通过定义WaitStrategy抽象基类,实现了五种典型等待策略:阻塞等待(最高延迟但零CPU消耗)、超时阻塞等待(带故障恢复)、休眠等待(轻量级延迟)、调度让步等待(平衡型)和忙等待(最低延迟但高CPU消耗)。

文章图片
#c++
拒绝做概率模型的“赌徒”:我是如何用 Copilot 进行结提示编程的

本文分享了使用Copilot作为代码助手的实用工作流。作者强调不应让AI直接编写核心业务代码,而是将其作为"结对编程助手"主导开发过程。工作流分为五个阶段:1)通过AI快速解析代码结构和数据流;2)需求分析阶段与AI讨论方案并验证思路;3)编码时先提供详细逻辑再让AI补充代码;4)利用AI编写测试脚本和查找潜在bug;5)处理文档和配置等杂务。文章指出,AI的上限取决于开发者如

文章图片
#copilot
C++ 高性能并发编程:基于 RAII 与 CAS 的轻量级原子读写锁设计

本文介绍了一种高性能原子读写锁的实现方案,主要针对C++17标准库锁在低延迟高并发场景下的性能瓶颈。文章采用分层设计思想,将锁的管理与实现解耦: 首先通过模板元编程实现RAII风格的锁守卫(ReadLockGuard/WriteLockGuard),利用对象生命周期自动管理锁,避免死锁风险,同时保持零开销抽象和代码复用性。 核心锁实现基于std::atomic,采用单变量状态机设计: 使用一个at

文章图片
#c++
RAG 实战 (下):打造多轮对话知识助手

本文介绍了如何构建一个支持多轮对话的RAG系统,主要解决传统RAG无法处理上下文指代和引用来源的问题。通过LCEL管道实现标准检索-生成流程,并重点讲解了"历史感知检索器"的两阶段设计:先通过查询改写解决指代问题,再检索文档生成答案。文章详细展示了如何使用create_retrieval_chain封装完整问答系统,包括对话历史管理、引用来源标注等功能,最后介绍了生产级特性流式

文章图片
#RAG
RAG 实战 (上):构建向量知识库

本文介绍了如何通过RAG(检索增强生成)技术让大模型处理私有数据,包括PDF、Markdown文档和网页内容。主要内容涵盖: 数据加载:使用PyPDFLoader、TextLoader和WebBaseLoader等工具加载不同类型的数据源,支持批量处理目录文件。 文本分割:重点讲解了RecursiveCharacterTextSplitter的分块策略,包括chunk_size和chunk_ove

文章图片
#RAG
    共 23 条
  • 1
  • 2
  • 3
  • 请选择