- 博客(13)
- 收藏
- 关注
原创 终极性能篇:DPDK 与用户态网络革命
DPDK(数据平面开发套件)是一种高性能网络数据包处理框架,通过完全绕过内核协议栈实现极致性能。其核心技术包括:1)用户态轮询模式消除中断开销;2)零拷贝机制让网卡数据直达用户空间;3)实现完整用户态协议栈。DPDK还采用巨页内存、NUMA感知、CPU绑定等优化手段,使网络吞吐量接近硬件极限。虽然需要独占CPU核心且开发复杂度高,但DPDK为5G、NFV、金融交易等需要超高吞吐的场景提供了突破性的解决方案,代表了网络性能优化的全新范式。
2025-10-08 14:44:55
835
原创 内核飞跃篇:io_uring 与真正的异步 I/O
本文探讨了Linux高性能I/O的演进,从epoll模型到io_uring异步框架的转变。文章首先指出epoll在高并发场景下的性能瓶颈,即频繁的系统调用和数据拷贝开销。随后详细介绍了io_uring的创新设计:通过共享内存的双环形队列实现用户态与内核态的无锁协作,支持批量提交I/O请求并异步获取结果。文章还对比了两种模型的本质差异,epoll提供"就绪通知"而io_uring提供"完成通知",并通过代码示例展示了io_uring编程实践。最后指出io_uring在性
2025-09-27 19:34:53
1143
原创 协程篇:以同步之美,简化异步编程
本文介绍了协程在高并发服务器编程中的应用。针对传统异步编程中的"回调地狱"问题,协程通过用户态轻量级线程实现同步风格的异步执行,在保持高性能的同时提升代码可读性。文章详细阐述了协程的工作原理、调度机制及实现方式,包括ucontext上下文切换、Hook技术等核心概念。通过一个基于C语言的协程服务器实现示例,展示了如何利用协程管理网络I/O和业务逻辑,实现单线程高效处理大量连接。最后强调了非阻塞I/O对协程运行的关键作用。协程技术为高并发编程提供了更优雅的解决方案。
2025-09-25 23:32:30
850
原创 基石篇:Reactor模式与高并发的基石
摘要:Reactor模式是处理高并发服务器编程的高效解决方案,通过I/O多路复用技术和事件驱动架构实现。该模式由Reactor(事件分发器)、Acceptor(连接接收器)和Handler(事件处理器)三部分组成,将事件监听、连接管理和业务处理解耦。相比直接使用epoll,Reactor模式解决了代码结构混乱和状态管理困难的问题,具有关注点分离、可维护性强等优势。实践表明,该模式可高效处理海量连接,为Nginx、Redis等高性能系统奠定基础,是网络编程的关键范式。
2025-09-23 22:50:06
1000
1
原创 IO多路复用——Select, Poll, Epoll之详解
本文详细介绍了I/O多路复用的三种实现方式:select、poll和epoll。主要内容包括:1. I/O多路复用概念:通过单线程管理多个网络连接,突破多线程模型的性能瓶颈。2. select详解:使用位图(fd_set)管理fd,存在1024个连接限制和O(n)扫描开销。3. poll改进:采用pollfd数组突破连接数限制,但性能模型与select类似。4. epoll优势:通过红黑树和就绪队列实现高效事件通知,支持大并发连接。5. 三者对比:epoll性能最优但仅限Linux,select/poll跨
2025-09-22 22:09:26
1043
原创 c语言手搓DNS报文
通过本文,我们用 C 语言亲手构造了一条 DNS 请求报文,并收到了真实的服务器响应。这不仅让我们更深入理解了 DNS 协议本身,也加深了对 UDP 网络编程的实际操作体验。如果你跟着做了一遍,相信你对“协议”和“报文”这两个词,已经有了更扎实的认识。
2025-07-12 15:10:44
740
原创 c语言操作MySQL数据库
MySQL 是一款广泛使用的开源关系型数据库。在日常开发中,我们通常通过高级语言和成熟的框架(如 Java 的 JDBC、Python 的 SQLAlchemy、PHP 的 PDO 等)来与它交互。然而,直接使用 C 语言操作 MySQL 的场景并不常见, 这种方式虽然底层,但更接近数据库的本质。本文将介绍如何使用来完成数据库的基本操作,特别是如何实现,以帮助理解数据库交互的本质过程。
2025-07-08 15:02:24
1442
原创 c语言实现线程池
在多线程编程中,线程池是一个被频繁提及的概念,很多人对它的使用已经非常熟悉。但在实际开发中,真正理解线程池内部结构、并能亲手实现它的人却并不多。为此,本文将带你从零开始,用 C 语言实现一个完整的线程池,通过动手实践深入理解它的设计原理与实现细节。
2025-07-06 16:57:10
791
原创 c语言实现通讯录
本文介绍了一个基于双向链表实现的通讯录系统,通过分层架构设计展示数据结构的实践应用。系统采用三层架构:支持层提供链表基础操作(插入、删除等宏定义),接口层实现联系人管理功能(查找、打印等),业务层完成具体交互逻辑(增删改查、文件存储)。数据结构设计包含联系人节点(存储姓名、电话)和通讯录结构(头指针、计数器)。系统特点包括:避免使用魔数、指针安全判断、文件持久化存储,以及通过分层解耦便于未来扩展。该项目适合数据结构初学者练习链表、结构体等知识点,并理解模块化编程思想。
2025-07-04 10:46:44
1888
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅