- 博客(56)
- 资源 (3)
- 收藏
- 关注
原创 C++中的协程,线程和进程
进程:适合资源隔离和多任务处理,需要使用进程间通信(IPC)机制。线程:适合CPU密集型任务和中等并发量场景,需要使用同步机制来避免数据竞争和死锁。协程:适合I/O密集型任务和高并发场景,轻量级且适合异步编程。
2025-04-04 00:37:07
815
原创 C++中的堆和栈
栈:适用于局部变量和函数调用,自动管理内存,分配速度快,但大小有限。堆:适用于动态分配的对象和数组,手动管理内存,分配速度较慢,但大小较大。理解栈和堆的区别和用途,可以帮助你更好地管理内存,编写高效、可靠的C++程序。
2025-04-04 00:22:23
720
原创 C++中的链表操作
标准库链表std::list和提供了丰富的功能和高效的插入删除操作,适合大多数应用场景。手动实现链表:通过手动实现链表,可以加深对链表内部机制的理解,例如节点的创建、插入、删除和内存管理等。
2025-04-03 19:49:20
667
原创 c++函数中的多态是怎样体现的
纯虚函数是一种特殊的虚函数,它没有具体的实现,派生类必须提供纯虚函数的实现,否则派生类也会成为抽象类。包含纯虚函数的类称为抽象类,不能实例化对象,但可以定义指向派生类对象的指针或引用。定义抽象类public:// 纯虚函数派生类实现纯虚函数public:运行时调用// 输出:ConcreteDerived show()delete ptr;return 0;在上述代码中,是一个抽象类,不能直接实例化对象。继承自并实现了纯虚函数show()。通过指向对象的类型的指针ptr调用show()
2025-04-03 19:44:43
565
原创 深入解析Translog机制:Elasticsearch的数据守护者
Translog机制通过巧妙的日志持久化设计,在性能与可靠性之间取得了精妙平衡。理解其工作原理并合理配置,是构建高可用Elasticsearch集群的关键。随着ES7.0引入可搜索快照功能,Translog在数据恢复中的作用更加重要。建议根据业务场景灵活调整参数,并持续监控日志的健康状态。
2025-04-02 20:43:31
662
原创 Elasticsearch 深度解析:从原理到实战的全面指南
通过本文的系统性解读,您已掌握 Elasticsearch 的核心原理与高级用法。无论是构建亿级日志平台,还是实现智能推荐系统,Elasticsearch 都将成为您数据架构中的核心引擎。建议通过官方文档和真实场景不断深化理解,让搜索技术真正赋能业务创新。
2025-04-02 16:41:29
926
原创 MongoDB 核心机制解析
MongoDB 的架构设计提供了灵活性、可扩展性和高可用性。理解其内部组件,从存储引擎到复制和分片,对于设计高效应用程序至关重要。通过遵循模式设计、查询优化和硬件配置的最佳实践。
2025-04-01 20:56:20
832
原创 H.264编码解析与C++实现详解
本文从H.264编码原理出发,详细讲解了C++实现中的关键技术点。通过FFmpeg库的灵活运用,结合多线程和SIMD等优化手段,可构建高性能的视频处理系统。实际开发中建议参考ITU-T H.264标准文档,并结合具体应用场景进行参数调优。
2025-04-01 16:11:38
489
原创 深入解析异构计算:从原理到 C++ 实践
1.1 定义与演进萌芽期(2000-2008):GPU 开始用于通用计算(GPGPU)。突破期(2009-2016):CUDA/OpenCL 生态成熟,异构系统进入 HPC 领域。融合期(2017 至今):Chiplet、XPU 等新型架构涌现。1.2 核心度量指标指标CPU 典型值GPU 典型值计算密度1 TFLOPS30 TFLOPS内存带宽100 GB/s1.5 TB/s能效比延迟10-100 ns1-10 μs。
2025-03-31 17:45:07
698
原创 Kubernetes深度解析:云原生时代的容器编排引擎
Kubernetes(K8s)诞生于2014年,是Google基于其内部Borg系统的开源实现。:如何高效分配数千容器的计算资源:动态环境下的服务发现与流量管理:故障自愈、滚动升级等运维需求截至2025年,全球超过92%的云原生应用运行在Kubernetes集群中,成为云计算基础设施的事实标准310。
2025-03-30 20:24:48
1036
原创 TCP vs UDP:传输层双雄的终极对决
本文技术细节参考RFC 793(TCP)、RFC 768(UDP)等标准文档,示意图为简化模型。:通过确认应答(ACK)、超时重传、序列号机制确保数据完整。:在UDP基础上增加可靠性机制,用于科研数据传输。✅ 实时性优先(视频会议延迟需<200ms):基于UDP实现可靠传输(HTTP/3标准)✅ 需要数据完整性的场景(如银行转账)✅ 高频小数据包(IoT传感器上报)✅ 广播/多播需求(如IPTV)网页浏览(HTTP/HTTPS)实时音视频传输(Zoom、直播)✅ 长连接通信(如数据库访问)
2025-03-30 19:00:24
491
原创 c++中,vector和map的原理及区别
如果你需要存储连续的、同类型的数据,并且需要频繁随机访问,是更好的选择。如果你需要存储键值对数据,并且需要按键的顺序访问或快速查找,std::map是更好的选择。
2025-03-29 11:45:56
518
原创 C++中,select和epoll的区别
如果你的应用场景中文件描述符数量较少且连接活跃,select可能是一个简单有效的选择。如果你需要处理高并发的网络通信,或者文件描述符数量较多且大多数连接不活跃,epoll通常是更好的选择。
2025-03-29 11:30:50
376
原创 NVME中的SPDK介绍
SPDK 的本质是通过用户态驱动轮询模式零拷贝的组合拳,将 NVMe 的硬件性能压榨到极致。在以下场景必用 SPDK:需要微秒级延迟的实时系统处理百万级 IOPS的高吞吐场景构建超大规模分布式存储实现存储虚拟化加速其代价是需要深度理解硬件特性,且开发复杂度较高。建议从官方示例程序()入手,逐步掌握核心编程模型。
2025-03-28 09:47:44
1047
原创 NVMe技术解析与实践:释放固态硬盘的真正性能
(Non-Volatile Memory Express)是一种专为现代固态存储设计的开放标准协议,旨在充分发挥PCIe接口的高速特性。相比传统的AHCI/SATA协议,NVMe的队列深度从单队列32命令提升到64K队列×64K命令,显著降低I/O延迟。
2025-03-28 09:36:22
282
原创 ARM架构深度解析:移动时代的硅基革命
1985年:Acorn RISC Machine原型机诞生1993年:ARM7TDMI成为首个百万级出货芯片2007年:iPhone搭载ARM11处理器2020年:Apple M1开启桌面级ARM革命移动设备市占率:99.3%(2023)云计算市场:AWS Graviton3市占率突破15%嵌入式领域:年出货量超300亿颗。
2025-03-27 13:19:18
801
原创 x86架构深度解析:统治计算世界40年的王者之路
Intel 8086处理器问世16位架构29,000晶体管5-10 MHz主频1MB内存寻址能力。
2025-03-27 11:34:01
358
原创 RT-Thread:开源的实时操作系统全解析
RT-Thread是一个嵌入式实时多线程操作系统实时性:支持硬实时(μs级响应)和软实时需求组件化架构:最小内核仅3KB ROM占用(Nano版本)跨平台支持:覆盖ARM Cortex-M/R/A、RISC-V、Xtensa等主流架构丰富生态:内置文件系统、网络协议栈、GUI框架等组件。
2025-03-26 16:54:01
1257
原创 c++中cpp文件从编译到执行的过程
从编写 C++ 文件到执行程序,整个过程包括预处理、编译、汇编、链接和运行。每个阶段都有其特定的任务和输出,最终生成可执行文件并运行。
2025-03-25 09:24:57
584
原创 Crow:C++高性能微服务框架的深度探索
在Python Flask、Node.js Express等框架主导的Web开发领域,C++长期处于边缘地位。:REST风格但依赖Boost:功能全面但学习曲线陡峭:重量级全栈框架。
2025-03-23 17:08:40
677
原创 Redis 核心架构深度解析:七大设计哲学揭秘
Redis通过内存速度、数据结构多样性、原子操作保证、高可用架构等特性,成为企业应对高并发、实时性要求的首选。其设计哲学在于用内存换时间,在CAP理论中偏向AP(可用性+分区容忍性),适合需要快速响应的互联网应用。对于新项目,建议从单节点起步,随业务增长逐步过渡到Cluster集群,并结合监控工具(如RedisInsight)保障稳定性。
2025-03-22 11:08:50
696
原创 Redis 核心源码解析:从设计哲学到企业级应用实践
通过源码分析可深入理解 Redis 的高性能设计精髓事件驱动模型:单线程扛高并发内存数据结构:精心优化的编码方式可扩展架构:模块化设计支持二次开发性能敏感场景:结合跳跃表、哈希表特性设计数据结构高可用要求:部署 Redis Cluster + Sentinel 监控混合持久化:RDB 定期快照 + AOF 实时日志。
2025-03-22 11:05:51
1032
原创 C++ 实现微信小程序登录的几种常用方式及技术解析
通过合理选择网络通信方案,结合 C++ 的高效特性,可以构建出高性能的微信登录后端服务。libcurl 是支持多协议的网络传输库,提供完善的 HTTP/HTTPS 支持,通过封装底层 socket 操作简化开发。通过直接使用 POSIX socket API 进行 TCP 通信,手动构造 HTTP 请求。C++ 实现核心在于 HTTP 请求处理。基于单头文件的轻量级 HTTP 库,内部封装 socket 操作。内置 HTTPS 支持(需依赖 OpenSSL)需要 HTTPS 支持的服务。
2025-03-21 21:38:17
959
原创 微信小程序登陆之反向代理
反向代理是现代化架构的基石,通过Nginx实现HTTPS到HTTP的转换,既能提升安全性,又能简化后端开发。客户端 → HTTPS请求 → Nginx(SSL解密) → HTTP请求 → 后端服务 → 响应 → Nginx(SSL加密) → 客户端。(代理客户端,如VPN)不同,反向代理代表服务端,是客户端与真实服务器之间的“中间人”。:在代理层解密HTTPS请求,以HTTP明文向后端传输(可重新加密)。:接收客户端请求,按规则转发到后端,并将结果返回客户端。:分散请求到多个后端实例,提升吞吐量。
2025-03-21 19:37:29
609
原创 重删算法中的Bloom滤波器详解与C++实现
Bloom滤波器(Bloom Filter)是一种,用于快速判断某个元素是否存在于集合中。:可能出现,但:存储1亿元素仅需约114MB(0.1%误报率时):使用多个哈希函数降低冲突概率在数据去重(Deduplication)系统中,Bloom滤波器通常作为:将数据流切分为固定/可变大小块:对每个数据块生成唯一指纹(如SHA-1)若过滤器返回"不存在" → 直接存储新块若返回"可能存在" → 查询精确索引:确认为新块则存入存储系统并更新索引:减少90%以上的磁盘索引查询操作,显著提升吞吐量。
2025-03-20 16:34:05
1256
原创 MCP(Model Context Protocol)技术解析与实战指导
MCP通过标准化与模块化重构了AI与工具的交互范式,其潜力在自动化开发、跨系统协作等场景已初步显现。尽管面临生态成熟度与性能挑战,但其“万能接口”的设计理念正推动AI应用进入“即插即用”的新时代。
2025-03-20 13:56:53
1576
原创 达梦数据库主备切换技术解析与实践指南
达梦数据库主备切换基于**数据守护(Data Watch)**机制实现,核心是通过主库(Primary)与备库(Standby)之间的实时Redo日志同步,确保数据一致性。当主库发生故障或需主动切换时,备库通过重演所有接收到的Redo日志完成数据同步,并提升为新的主库,继续提供服务510。达梦数据库的主备切换机制通过日志同步与状态监控实现高可用性,适用于金融、政务等对数据可靠性要求高的场景。:主库处理写操作,备库提供只读查询,提升整体性能10。:备库接收并重演Redo日志,保持与主库数据一致。
2025-03-19 13:08:47
769
原创 电子邮件常用协议技术详解与C++实践(SMTP POP3 IMAP)
MIME扩展支持多媒体附件(Base64编码)Thunderbird邮件客户端(C++实现)命令协商扩展功能(如STARTTLS加密)RFC 3501: IMAP协议规范。RFC 1939: POP3协议定义。邮件标签与状态标记(已读/星标)RFC 5321: SMTP标准。Dovecot IMAP服务器。Postfix SMTP服务器。中继服务器通过MX记录查找。默认删除服务器副本(可通过。命令获取邮件唯一标识。
2025-03-18 13:36:01
948
原创 SB重删算法详解:原理、架构与实现
SB重删算法通过动态块分割与两级哈希索引,结合滑动窗口与固定块的优点:粗粒度分块:基于固定块(Super Block)划分数据,减少哈希计算量。细粒度去重:在Super Block内部滑动窗口计算指纹,定位重复数据。内存友好:通过布隆过滤器(Bloom Filter)加速索引查询,降低I/O压力。输入数据流 → 分割为Super Block → 滑动窗口计算指纹 → 查询哈希索引 → 存储唯一数据块SB重删算法通过混合分块策略和两级索引,在保证高重删率的同时显著降低计算开销。
2025-03-18 09:00:00
533
原创 基于内容分块(CDC)的重删算法详解:原理、实现与优化
CDC算法通过将数据智能分块,在存储效率与计算开销之间取得了优雅的平衡。随着存储介质的发展(如QLC SSD的普及)和计算能力的提升(GPU加速),CDC技术正在向更细粒度分块、智能学习分块策略的方向演进。理解CDC的工作原理,对于设计高效存储系统具有重要意义。
2025-03-17 13:43:29
811
原创 FSP (Fixed-Size Partitioning) 固定分块算法详解
FSP(Fixed-Size Partitioning)固定分块算法是最基础的数据分块策略,其核心思想是将文件进行分割。每个数据块独立计算哈希值,通过比较哈希值识别重复数据块。按固定大小(如4MB)切割文件最后一个块允许小于标准块大小示例:8.2MB文件会被分割为2个4MB块 + 1个0.2MB块每个块计算唯一哈希值(通常使用SHA-256)维护全局哈希表记录所有块的哈希新块哈希若存在于表中,则判定为重复。
2025-03-15 10:53:42
542
原创 不同重复数据删除(重删)算法详解
在超级块(如1MB)内进行多级子块(如256KB、64KB)检测,提升细粒度重复数据发现能力。将数据按固定大小(如4KB、8KB)分割为块,每个块独立处理,通过哈希值判断重复性。:使用快速哈希(如MurmurHash)筛选候选块,再用强哈希(如SHA-1)确认。:维护一个固定大小的滑动窗口(如64KB),计算窗口内数据的哈希特征。:对每个块计算唯一哈希(如SHA-256),通过哈希表判断是否重复。:块大小在一定范围内浮动(如2KB~8KB),适应内容变化。:数据流被均匀切分为固定大小的块(如4KB)。
2025-03-15 10:47:31
985
原创 DeepSeek 3FS 技术解析与实战指南
DeepSeek 3FS(Fire-Flyer File System)是一款面向 AI 训练与推理场景设计的高性能并行文件系统,通过融合现代 SSD 存储与 RDMA 网络技术,实现高达6.6TiB/s的吞吐量,支撑数据预处理、检查点保存、KVCache 查询等关键场景23。
2025-03-14 20:39:36
768
原创 使用C++实现微信小程序后端登录
小程序前端调用wx.login()获取临时登录凭证(code):在小程序前端代码中,调用wx.login()接口获取一个临时的登录凭证 code。这个 code 只能使用一次,有效期为5分钟。将 code 传递给后端:小程序前端将获取到的 code 通过网络请求发送给后端服务器。后端使用 code、appid 和 appsecret 调用微信接口获取openid和:后端服务器收到 code 后,使用 code、小程序的 appid 和 appsecret 调用微信提供的接口,获取用户的唯一标识openid。
2025-03-13 20:48:43
594
原创 回溯算法(DFS):leetcode 习题解析
例如,n=4, k=2 时,答案是 [[1,2], [1,3], [1,4], [2,3], [2,4], [3,4]]。例如:当前已选 1 人(path.size()=1),还需要选 k-1=1 人,但剩下的队员只有 n - i + 1 人。如果 n - i + 1 < 1,直接跳出循环。比如选了 2 之后,只能从 3 开始选,不会出现 [2,1] 这种逆序。组合数为 C(n,k),每次生成组合需要 O(k) 时间,总复杂度为 O(C(n,k) * k)。输入:n = 1, k = 1输出:[[1]]
2025-03-13 13:41:39
293
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人