<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yudaichenydc的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yudaichenydc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yudaichenydc]]></copyright><item><title><![CDATA[166 万 req/s！C++23 协程网络库 cnetmod 重磅发布：超越 Tokio 与 Hyper，重新定义极限性能]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/163504567</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/163504567</guid><author>yudaichenydc</author><pubDate>Wed, 05 Aug 2026 14:41:48 +0800</pubDate><description><![CDATA[《166万req/s！C++23原生模块化网络框架cnetmod性能对决》摘要： C++23原生网络框架cnetmod通过模块化设计、无栈协程和平台级I/O引擎，在性能测试中完胜Rust生态。该框架基于C++23 Modules实现零编译开销，采用对称转移技术优化协程切换，集成stdexec异步模型。实测显示，其HTTP/1.1吞吐达166万req/s，HTTPS性能超Rust Hyper 52%，HTTP/3提升65.5%。同时提供全栈生态支持，包括MQTT、ORM和工业协议，并针对AI代码生成优化架构设]]></description><category></category></item><item><title><![CDATA[cnetmod 基于 C++23 模块和原生协程的跨平台异步网]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/158775209</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/158775209</guid><author>yudaichenydc</author><pubDate>Sat, 07 Mar 2026 16:55:06 +0800</pubDate><description><![CDATA[cnetmod是一个基于C++23模块和原生协程的跨平台异步网络库，支持Windows、Linux和macOS平台。它提供高性能I/O引擎（IOCP/io_uring/kqueue）、协程运行时和丰富的网络协议支持，包括TCP/UDP、TLS、HTTP/1.1/2、WebSocket、MQTT、MySQL、Redis等。该库内置同步原语、定时器、日志等实用工具，采用模块化设计，支持CMake构建。]]></description><category></category></item><item><title><![CDATA[一个基于现代 C++23 Modules 的传统文化算法库，使用纯模块化设计实现(包含大六壬、六爻、紫薇斗数、八字、奇门遁甲)]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/154791352</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/154791352</guid><author>yudaichenydc</author><pubDate>Thu, 13 Nov 2025 15:50:14 +0800</pubDate><description><![CDATA[ZhouYiLab是一个基于C++23 Modules的传统文化算法库，采用纯模块化设计实现周易相关术数系统。项目整合了多种传统命理算法，包括大六壬、六爻、紫微斗数、八字排盘、奇门遁甲等，并支持农历历法转换功能。核心特性包括：完全模块化架构（采用.cppm模块接口文件）、现代化构建系统（CMake 4.1.2+）、严格的C++23规范要求（支持import std标准库模块）。项目通过Git子模块管理第三方依赖，提供跨平台构建能力，展示了如何用现代C++技术重构传统文化算法。代码结构清晰，包含核心干支系统、]]></description><category></category></item><item><title><![CDATA[炸裂！C++23 模块与 CMake 碰撞出的新特效编程魔法]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503912</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503912</guid><author>yudaichenydc</author><pubDate>Fri, 07 Feb 2025 22:33:41 +0800</pubDate><description><![CDATA[通过以上步骤，你就能在 CMake 项目中轻松使用 C++23 模块，无论是 Clang 还是 MSVC 最新版本编译器都能完美适配，感受它们碰撞出的编程新特效。合理运用 CMake 的相关配置和 C++23 模块特性，能显著提高项目的编译效率和代码的可维护性。如果你想了解更多关于 CMake 中import std。希望你能在这场编程冒险中收获满满，创造出属于自己的编程奇迹！]]></description><category></category></item><item><title><![CDATA[Boost 库使用 Clang LLVM编译器的编译方法]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503414</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503414</guid><author>yudaichenydc</author><pubDate>Fri, 07 Feb 2025 21:56:35 +0800</pubDate><description><![CDATA[在开始编译 Boost 之前，请确保已经安装了 Clang 编译器，并且版本支持 C++20 标准。同时，从下载所需的 Boost 源码包，并解压到指定目录。]]></description><category></category></item><item><title><![CDATA[使用 C++20 Modules 导入 Boost 模块的方法]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503254</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503254</guid><author>yudaichenydc</author><pubDate>Fri, 07 Feb 2025 21:46:54 +0800</pubDate><description><![CDATA[通过使用 C++20 Modules 导入 Boost 模块，我们可以提高编译效率，减少头文件重复包含带来的问题。同时，利用 Boost 库丰富的功能，我们可以更高效地开发 C++ 应用程序。希望本文能帮助你顺利使用 C++20 Modules 导入 Boost 模块。以上就是使用 C++20 Modules 导入 Boost 模块的详细方法，如果你在实践过程中遇到任何问题，欢迎在评论区留言讨论。]]></description><category></category></item><item><title><![CDATA[解决 CLion 中 import std 无法识别导航的问题]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503085</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/145503085</guid><author>yudaichenydc</author><pubDate>Fri, 07 Feb 2025 21:40:30 +0800</pubDate><description><![CDATA[在使用 CLion 进行 C++ 开发时，你可能会遇到 import std无法被识别的情况，这往往会阻碍开发进度，让人颇为头疼。并提供在 Windows 和 Unix 系统下查找  的方法，同时对  和  的特性进行对比介绍。当在 CLion 里编写使用 C++ 模块特性，尝试  语句时，CLion 可能会提示无法识别该导入，无法正常解析  模块，进而导致编译错误。]]></description><category></category></item><item><title><![CDATA[c++ 20 module 模块使用 cmake]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/130415087</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/130415087</guid><author>yudaichenydc</author><pubDate>Thu, 27 Apr 2023 21:16:42 +0800</pubDate><description><![CDATA[c++ 20 使用cmake 构建模块]]></description><category></category></item><item><title><![CDATA[ZLMediaKit源码分析（一）启动]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/127997301</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/127997301</guid><author>yudaichenydc</author><pubDate>Wed, 23 Nov 2022 15:07:35 +0800</pubDate><description><![CDATA[常用的定时器有最小堆、时间轮、红黑树，ZLMediaKit采用std::map红黑树实现，key保存时间，value保存std::function，这一块的实现存在争议。单例模式，初始化线程池，EventPollerPool 初始化了线程池的大小 ，_threads遍历使用。用作会话管理，用来处理每一种协议的拆包、解析、封装等功能，事件与已经链接的fd的读、写、关闭事件属于同级事件。首先会设置线程池的大小，线程池大小默认是。3、线程池的item poller，执行。，执行为当前poller的fd设置。]]></description><category></category></item><item><title><![CDATA[精简设计模式]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/126847164</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/126847164</guid><author>yudaichenydc</author><pubDate>Wed, 14 Sep 2022 10:15:35 +0800</pubDate><description><![CDATA[总体来说设计模式分为三大类：创建型模式：工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式：适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式：策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。]]></description><category></category></item><item><title><![CDATA[JetLinks 的网络组件注入方式]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/125276879</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/125276879</guid><author>yudaichenydc</author><pubDate>Tue, 14 Jun 2022 14:08:52 +0800</pubDate><description><![CDATA[当一个BeanPostProcessor的实现类注册到Spring IOC容器后，对于该Spring IOC容器所创建的每个bean实例执行postProcessAfterInitialization、postProcessAfterInitialization。Spring容器通过BeanPostProcessor给了我们一个机会对Spring管理的bean进行再加工。比如：我们可以修改bean的属性，可以给bean生成一个动态代理实例等等。一些Spring AOP的底层处理也是通过实现BeanPostP]]></description><category></category></item><item><title><![CDATA[opencv 使用hsv图抠绿色背景]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/124345775</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/124345775</guid><author>yudaichenydc</author><pubDate>Fri, 22 Apr 2022 14:52:53 +0800</pubDate><description><![CDATA[c++ opencv 使用hsv图消除绿色]]></description><category></category></item><item><title><![CDATA[nginx-1.9.2 调试]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/124301995</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/124301995</guid><author>yudaichenydc</author><pubDate>Wed, 20 Apr 2022 17:00:25 +0800</pubDate><description><![CDATA[生成cmake文件调试
1、在auto的根目录下创建名称为cmake的文件
#!/usr/bin/env bash\
# NGX_CMAKE_FILE=$NGX_OBJS/CMakeLists.txt
# ********此处生成到项目跟目录，修改$NGX_OBJS/CMakeLists.txt为CMakeLists.txt
NGX_CMAKE_FILE=CMakeLists.txt
NGX_CMAKE_TMP=$NGX_OBJS/tmp

#output includes
cmake_ngx_incs=`]]></description><category></category></item><item><title><![CDATA[nginx源码分析（一） 启动篇nginx.c]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/124271921</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/124271921</guid><author>yudaichenydc</author><pubDate>Tue, 19 Apr 2022 13:57:27 +0800</pubDate><description><![CDATA[一、Nginx的启动过程
Nginx的主流程的实现函数在./src/core/nginx.c文件中，以下是流程图，减少一切非必要的代码说明

二、主要命令
命令


-v 版本号；


-?,-h 帮助 ;


-t -T 测试配置；


-q 退出；


-s 发送信号；


-p 设置编译后的路径；


-c 配指文件名称；


-g 设置全局


信号

nginx -s reload
nginx -s reopen
nginx -s stop
nginx -s quit


...]]></description><category></category></item><item><title><![CDATA[Redis源码分析（四）字典-dict]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/121195139</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/121195139</guid><author>yudaichenydc</author><pubDate>Mon, 08 Nov 2021 16:36:51 +0800</pubDate><description><![CDATA[概述
Redis中的dict字典可以理解为key和value映射关系的升级版本的散列链表。dict字典的出现是为了解决算法中的查找问题，在实际开发中查找主要使两种结构体，他们分别是使用Map结构的树与Hash表。使用Hash表找到的优势是，在没有Hash碰撞的情况下，查找性能能达到O(1)，并且它的内部实现也比较简单。dict字典借鉴了多个经典的算法实现Hash的key计算。dict字典在发生冲突时采用拉链法解决冲突，它的内部维护了两个hash表，当装载因子（节点数和字典大小之间的比率接近 1：1，且已使用]]></description><category></category></item><item><title><![CDATA[Redis源码分析（三）双向链表-adlist]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/121095024</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/121095024</guid><author>yudaichenydc</author><pubDate>Thu, 04 Nov 2021 21:45:13 +0800</pubDate><description><![CDATA[Redis源码分析（三）双向链表-adlist）概述内存结构结构体内存图
概述
Redis中的list结构的数据结构是双向链表，双向链表也叫双链表，是链表的一种，每个数据结点中都有两个指针，分别指向直接后继和直接前驱。
优点：从双向链表中的任意一个结点开始，都可以很方便地访问前驱结点和后继结点。
缺点：相比较于单链表的删除、增加节点，操作略微复杂，而且在内存上，需要多分配一个指针存储空间。
内存结构
结构体
可以看到
typedef struct listNode {

    // 前置节点
    st]]></description><category></category></item><item><title><![CDATA[Redis源码分析（二）动态字符串-sds]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/121030613</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/121030613</guid><author>yudaichenydc</author><pubDate>Mon, 01 Nov 2021 12:51:40 +0800</pubDate><description><![CDATA[这里写目录标题概述
概述
面向过程的C语言没有可变长的字符串，而面向对象语言里，Java有的final String字符串，StringBuffer、StringBuilder可变长对象，C++中有std::string字节流对象。Redis在sds.c、sds.h文中实现了动态可变字符串。

...]]></description><category></category></item><item><title><![CDATA[Elasticsearch 手册]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/117388898</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/117388898</guid><author>yudaichenydc</author><pubDate>Thu, 28 Oct 2021 09:52:30 +0800</pubDate><description><![CDATA[基础概念

Elasticsearch对应MySQL的对应关系如下：


			Elasticsearch
			
			
			MySQL
			
		
			索引库（indices）
			
			
			Database 数据库
			
		
			类型（type)
			
			
			Table 数据表
			
		
			文档（Document）
			
			
			Row 行
			
		
			域字段（Field）
			
			
			Columns 列
			
		
			...]]></description><category></category></item><item><title><![CDATA[Redis源码分析（一）内存池-zmalloc]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/120986106</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/120986106</guid><author>yudaichenydc</author><pubDate>Wed, 27 Oct 2021 22:19:55 +0800</pubDate><description><![CDATA[Redis 源码分析（一）内存池-zmalloc概述新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
概述
大家好，我是一名萌新，在文章分享有不正确的、语言比较晦涩的地方，欢迎大家明确提出来。
本人经历：过去一年在某高校的J]]></description><category></category></item><item><title><![CDATA[bladeX评价（深度好文）]]></title><link>https://blog.youkuaiyun.com/yudaichenydc/article/details/116052162</link><guid>https://blog.youkuaiyun.com/yudaichenydc/article/details/116052162</guid><author>yudaichenydc</author><pubDate>Fri, 23 Apr 2021 13:23:28 +0800</pubDate><description><![CDATA[序
我承认有些架构师真的技术很强，但是一味的做无意义的封装，增加上手成本，背离了简化开发的初衷。
开篇
bladex 这个框架是我做第一个商业项目用的框架，项目经理当时花了五千多买的框架，比较重量级别（臃肿），比如：在权限管理安全使用自研框架，对myabtis-plus框架做一些憨厚的封装，大量的var1、var2变量，在持久化框架上我还可以忍受，但是在安全框架使用自研我无法忍受！这个框架对于大型企业的与中小型企业的架构理解不够透彻，做了一些华而不实的封装。他的单体版本商业版本，我不明白为何也要加入重量级别]]></description><category></category></item></channel></rss>