logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux C/C++ 学习日记(50):连接池

本文介绍了数据库连接池的实现原理与C++代码实现。连接池通过维护固定数量的数据库连接,解决了资源复用和并发处理能力问题。文章详细阐述了同步/异步连接池的区别,并重点分析了异步连接池的组件设计:包括连接池管理类(MySQLConnPool)、连接项(MySQLConn)、工作线程(MySQLWorker)、请求项(SQLOperation)和回调机制(QueryCallback)。通过promise

文章图片
#学习#数据库
项目(1):kv存储(一):性能测试

摘要:KV存储服务器性能测试显示,单机模式(全量/增量持久化)QPS约6万;主从同步时主机QPS降至5万(虚拟机CPU资源限制),从机使用引擎副本同步时可稳定在5万。内存泄漏检测(valgrind)表明:主机存在288字节可能泄漏(线程TLS资源)和1.14MB可访问内存(框架全局资源),从机仅1.14MB可访问内存,均属良性未释放资源,核心业务无真实泄漏,服务器可长期稳定运行。(149字)

文章图片
#服务器#数据库#运维
Linux C/C++ 学习日记(59):手写死锁监测的组件

本文介绍了多线程环境下的死锁检测机制。死锁是指多个线程因循环等待资源而永久阻塞的状态。作者提出通过构建线程间的有向等待图来检测死锁:当线程请求被占用的锁时建立等待边,获取锁后删除该边,并定期使用拓扑排序检测图中是否存在环。文中给出了C++实现,包含维护互斥锁-线程映射表、构建等待图及检测循环的完整代码。该方案能有效识别典型的循环等待死锁,并通过独立监测线程实时预警。测试案例模拟了四个线程的循环等待

文章图片
#学习
八股文(1):Linux系统是如何收发数据包的?

本文解析了网络协议栈的数据传输过程。在TCP协议中,发送数据时会进行分段并缓存,通过克隆sk_buffer添加各层协议头后发送,收到ACK后清除缓存;UDP则无分段和缓存机制。接收数据时,TCP会存入接收缓存并回传ACK,UDP可能需IP重组但无ACK反馈。文章还指出TCP分段可避免IP分片,提升重传效率;并解释了克隆与拷贝的区别:克隆共享核心数据且开销低,而拷贝完全独立但开销高。最后以sk_bu

文章图片
#linux
项目(1):kv存储(二):纯内存操作同步 + ebpf

本文对eBPF和KV存储服务器进行了性能测试分析。eBPF测试显示:粘包情况下发送速率低于截取速率,无粘包时两者耗时相近。KV存储测试包含单主机全量/增量模式、主从同步模式,分别对红黑树、哈希表、跳表三种引擎进行读写删操作测试。测试方案包括引擎混合测试和单独测试,并在单主机全量模式下结合eBPF进行主从同步性能评估。测试数据涵盖了不同连接状态(有无从机连接)下的性能表现。

文章图片
#服务器
Linux C/C++ 学习日记(35):协程(五):同步、多线程、多协程在IO密集型场景中的性能测试

本文对比了三种HTTP客户端实现方式(同步、多线程、协程)的性能测试结果。测试分别在夜间和白天进行,发送650-1000个请求到百度服务器。结果显示:1) 同步方式效率最低;2) 线程和协程在高并发时性能接近,但协程内存占用更优(KB级 vs MB级);3) 白天测试中,线程和协程在高负载时出现部分请求响应异常(接收0字节)。测试代码包含三种实现:同步的common_http_client.c、基

文章图片
#学习
Linux C/C++ 学习日记(36):Reactor模式(四):使用动态链表兼容大数据和小数据的收发

本文介绍了一个基于epoll和非阻塞IO的Reactor模式网络框架实现。关键部分包括: 核心结构体conn,包含文件描述符、发送/接收状态、读写链表节点等,支持大数据分片处理。 双向链表实现的数据缓冲区,通过节点动态扩展解决粘包/半包问题,实现网络层与业务层解耦。 HTTP服务器实现,包括请求解析、响应生成,支持静态文件发送(使用sendfile零拷贝优化)。 非阻塞IO处理逻辑,包括EAGAI

文章图片
#c语言#c++
C/C++内置库函数(7):lambda表达式

本文详细介绍了C++中Lambda表达式的基础语法和核心特性。主要内容包括:1)Lambda的完整语法结构,重点解析了捕获列表和函数体这两个必需部分;2)捕获列表的五种构建方式(空捕获、值捕获、引用捕获、隐式捕获和初始化捕获);3)三个实用特性:mutable修饰符、泛型Lambda(C++14)以及作为回调函数的应用场景。Lambda表达式通过灵活的捕获机制和简洁的语法,特别适合作为STL算法的

文章图片
#c++#c语言#java
Linux C/C++ 学习日记(60):Redis(一):基本介绍

Redis是一款开源高性能键值对内存数据库,支持多种数据结构和持久化。核心特点包括超高读写性能(单机QPS达10万+)、丰富数据结构、原子操作和分布式能力。主要应用于数据缓存、分布式协调、临时数据存储、消息传递和复杂计算等场景。与传统关系型数据库相比,Redis以内存操作为主,适合高频读写和分布式场景,但不支持复杂查询和强事务。典型应用包括缓存热点数据、实现分布式锁、构建排行榜系统等。

文章图片
#学习
Linux C/C++ 学习日记(62):Redis(三):订阅

Redis发布订阅(Pub/Sub)是Redis提供的轻量级消息通信机制,基于频道和模式实现一对多的消息广播。核心指令包括SUBSCRIBE/PSUBSCRIBE(订阅)、PUBLISH(发布)等,订阅者会进入阻塞状态。适用于实时通知、配置同步等场景,但存在无持久化、无确认机制等局限性,不适合高可靠性要求的场景。与List实现的消息队列相比,Pub/Sub是广播模型且不存储消息,而List支持消息

文章图片
#学习#redis#数据库
    共 45 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择