C/C++
文章平均质量分 55
liulilittle
如果我只是恨你,那该多好;这一生,终究没能逃出这囚笼;也好,但愿此去,能化归烟云浮尘;逍遥天地,再无拘束。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
moodycamel::ConcurrentQueue 清空队列的方法论
T item;// 元素自动处理// 对于指针类型的特化版本。原创 2025-12-19 20:21:42 · 159 阅读 · 0 评论 -
C++ 中频事件队列的设计与实现
本文提出了一种C++中频事件队列设计方案,针对2M EPS量级的量化交易场景。核心采用Strand模型,确保同一股票代码事件严格有序处理,同时实现不同股票事件的并行执行。关键技术包括:1) 无锁多生产者队列;2) 64字节对齐的Strand结构消除伪共享;3) 手动管理的调度链表优化缓存性能等。原创 2025-12-18 19:29:34 · 2141 阅读 · 0 评论 -
Linux 下堆栈打印及手动DUMP转储
【代码】Linux 下堆栈打印及手动DUMP转储。原创 2025-12-18 09:38:58 · 111 阅读 · 0 评论 -
C++ 标准库实现容器元素打乱。
【代码】C++ 标准库实现容器元素打乱。原创 2025-12-15 14:22:01 · 210 阅读 · 0 评论 -
高频行情事件队列
本文分析了高频行情处理系统的性能瓶颈,提出了改进方案。原系统采用静态哈希分配算法导致负载不均,存在单线程处理瓶颈。新方案引入StrandQueue机制,通过CAS原子操作实现多线程安全访问,保持消息顺序处理的同时提高并行度。系统采用两级调度结构:主队列管理器维护所有股票队列,调度链表动态管理活跃队列,多个驱动线程竞争执行权实现负载均衡。该设计解决了热点股票处理瓶颈,提高了系统吞吐量和资源利用率。原创 2025-12-12 20:03:38 · 1591 阅读 · 0 评论 -
mapcrypt (C++) 加解密
【代码】mapcrypt (C++) 加解密。原创 2025-12-12 14:44:12 · 98 阅读 · 0 评论 -
C++ 浮点数封装。
【代码】C++ 浮点数封装。原创 2025-12-09 16:28:36 · 234 阅读 · 0 评论 -
C++ 标准库并行查找。
【代码】C++ 标准库并行查找。原创 2025-12-09 10:59:02 · 90 阅读 · 0 评论 -
C++ 设置CPU亲和性
【代码】C++ 设置CPU亲和性。原创 2025-12-08 15:25:52 · 833 阅读 · 0 评论 -
C++ 17 枚举目录资源。
枚举目录资源及递归枚举, namespace fs = std::filesystem;原创 2025-12-08 15:25:04 · 269 阅读 · 0 评论 -
C++ 获得上次错误代码及文本信息。
【代码】C++ 获得上次错误代码及文本信息。原创 2025-12-08 15:23:14 · 70 阅读 · 0 评论 -
C++ 获取CPU名。
【代码】C++ 获取CPU名。原创 2025-12-08 15:21:03 · 98 阅读 · 0 评论 -
C++ abs (求绝对值)
【代码】C++ abs (求绝对值)原创 2025-12-05 16:26:31 · 88 阅读 · 0 评论 -
C++ ConcurrentTwoStepQueue:多阶段并发队列
ConcurrentTwoStepQueue:三阶段并发队列 本文提出了一种创新的三阶段并发队列模型ConcurrentTwoStepQueue,通过时序分离技术解决传统并发队列在计算效率与顺序保证之间的矛盾。该设计包含三个关键阶段: 并行Begin阶段:多个线程同时处理不同元素的OnBegin计算,计算顺序与入队顺序无关,最大化利用多核CPU 线性End阶段:严格按序列号顺序处理计算结果,确保最终一致性,通过ends_ack_指针实现顺序重整 有限并行回调阶段:使用CAS机制控制事件回调的并发度,在保证顺原创 2025-12-05 11:32:46 · 1201 阅读 · 0 评论 -
C++ 并发双阶段队列设计原理与实现
并发双阶段队列设计实现了高效的任务处理机制,通过分离入队与处理阶段提升吞吐量。核心特点包括: 双阶段隔离:入队(Enqueue)与处理(TryBegin/TryEnd)分离,减少锁争用 原子操作:使用自旋锁(SpinLock)保证关键操作的线程安全 状态跟踪:通过递增ID序列管理任务生命周期 异常处理:skip_集合记录失败任务,避免重复处理 扩展接口:虚函数设计支持自定义处理逻辑 该结构适用于高并发场景,如IO密集型任务和实时计算,通过批量处理(DoEvents)和内存预分配优化性能。锁粒度主要集中在en原创 2025-12-04 16:55:52 · 1608 阅读 · 0 评论 -
MemoryStream C++
【代码】MemoryStream C++原创 2025-12-04 10:54:28 · 164 阅读 · 0 评论 -
FileStream C++
【代码】FileStream C++原创 2025-12-04 10:52:09 · 120 阅读 · 0 评论 -
VC++ 设置当前编译源文件的默认字符集
摘要:该代码片段是用于设置程序字符集编码的预处理指令。当编译器版本(MSC_VER)大于等于1600时,会执行#pragma指令将执行字符集设置为UTF-8编码。这种设置主要用于确保程序能够正确处理多语言字符,特别是在Visual Studio等支持该指令的开发环境中。该技术常见于需要国际化支持的软件开发中。原创 2025-12-04 10:40:29 · 69 阅读 · 0 评论 -
GetNanosecondsTickCount 函数(Win32/Linux vDSO)
【代码】GetNanosecondsTickCount 函数(Win32/Linux vDSO)原创 2025-12-04 10:01:02 · 99 阅读 · 0 评论 -
VC++ 控制台启用ANSI颜色支持(Windows)
/ 启用ANSI颜色支持。原创 2025-12-04 09:58:41 · 78 阅读 · 0 评论 -
C++ 标量哈希及SSE2矢量哈希算法(压U高性能版本)
请在 Release 下测试性能,Debug 它性能不行。原创 2025-12-03 01:52:16 · 297 阅读 · 0 评论 -
Linux C++ 打印堆栈
编译器 -fvisibility=default 要设置为默认可见,否则符号信息解不出来。原创 2025-12-02 20:47:45 · 114 阅读 · 0 评论 -
C++ 把整数转换为中文字符串(支持万亿即兆处理)
该代码实现将整数转换为中文数字字符串的功能。主要特点包括:1) 支持正负数处理;2) 按四位分组处理,支持"万"、"亿"、"兆"等单位;3) 正确处理"零"的显示规则,避免连续多个零;4) 特殊处理"一十"开头的数字;5) 清理末尾多余的零。算法通过分组处理、单位拼接和边界条件检查,实现了数字到中文的准确转换。原创 2025-12-02 20:06:55 · 114 阅读 · 0 评论 -
GCC/CLANG likely\unlikely 宏定义实现。
(x), 1)!(x), 0)原创 2025-12-02 16:32:34 · 84 阅读 · 0 评论 -
Linux C++ 程序设置 DUMP
添加手动指定DUMP路径:kernel.core_pattern = /tmp/core-%e-%p-%t。# 如果出现:下面的内容,意味着是 apport 管理的(Ubuntu 18.04 LTS 以后扩展)cat /proc/sys/kernel/core_pattern # 执行命令。临时禁用:sudo service apport stop。或者是手动修改 /etc/sysctl.conf 文件。sysctl -p 命令执行生效就可以。以下是程序自己设置 DUMP。原创 2025-12-02 11:06:07 · 119 阅读 · 0 评论 -
C++ SSE/AVX/SHA/AES指令集检查,用于程序定向优化。
【代码】C++ SSE/AVX/SHA/AES指令集检查,用于程序定向优化。原创 2025-12-02 10:14:24 · 216 阅读 · 0 评论 -
SIMD/SSE2 减法及性能测试
【代码】SIMD/SSE2 高性能累积减法与标量累积减法实现及性能测试。原创 2025-12-02 09:08:40 · 80 阅读 · 0 评论 -
SIMD/SSE2 加法实现及性能测试
本文展示了一个CPU特性检测和SIMD性能对比的实现。代码通过CPUID指令检测SSE2、SSE3、AVX、AVX2和AVX512等SIMD指令集支持情况,并提供了标量加法、SSE2、AVX2和AVX512四种向量加法实现。程序能自动选择最优算法,并对不同实现进行性能测试,输出吞吐量指标。测试使用1000万个32位整数,重复10次计算,验证结果正确性的同时比较各实现的执行效率。结果表明,支持更宽SIMD指令集的算法能显著提升计算性能。原创 2025-12-02 09:05:37 · 92 阅读 · 0 评论 -
libstdc++ hash_bytes 算法移植(支持VC++、GCC、CLANG)
【代码】libstdc++ hash_bytes 算法移植(支持VC++、GCC、CLANG)原创 2025-12-01 23:57:24 · 529 阅读 · 0 评论 -
C++ 17 字符串填充函数(PaddingLeft、PaddingRight)填充左侧、右侧。
C++ 模版实现(HPP)C++ 17 模版约束。原创 2025-12-01 17:22:03 · 226 阅读 · 0 评论 -
C++ 中文符号替换英语符号
【代码】C++ 中文符号替换英语符号。原创 2025-12-01 14:42:19 · 111 阅读 · 0 评论 -
C++ 检测是否为字母 wchar_t@Unicode
摘要:该代码实现了一个宽字符编码检测函数,能够判断字符是否为英文字母或中文字符(包括简体中文和繁体中文)。函数首先检查是否为英语字母,然后检查Unicode编码范围:简体中文(0x4E00-0x9FFF)、繁体中文扩展A区(0x3400-0x4DBF)和扩展B区(0x20000-0x2A6DF)。使用前需设置区域支持宽字符处理。该函数适用于需要同时处理中英文字符的场景。原创 2025-12-01 14:18:00 · 80 阅读 · 0 评论 -
C++判断wchar_t空白字符
本文展示了一个检测Unicode空白字符的C++实现方案。通过定义包含各种Unicode空白字符(如普通空格、制表符、零宽空格等)的集合,实现了判断单个字符是否为空白字符的函数is_any_whitespace(),以及判断整个字符串是否全为空白字符的扩展函数is_whitespace_string()。代码提供了多种Unicode空白字符的测试用例,包括ASCII空白字符、特殊排版空格和零宽空格等,验证了函数的正确性。该方案适用于需要精确识别各种Unicode空白字符的场景。原创 2025-12-01 13:12:33 · 193 阅读 · 0 评论 -
C++ 判断是否为特殊字符
【代码】C++ 判断是否为特殊字符。原创 2025-12-01 11:07:32 · 113 阅读 · 0 评论 -
libstdc++ # std::_Hash_bytes 实现源代码
【代码】libstdc++ # std::_Hash_bytes 实现源代码。原创 2025-11-30 21:00:41 · 122 阅读 · 0 评论 -
C++ 计算当前时区偏移量秒数(GMT/UNIX偏移量)
【代码】C++ 计算当前时区偏移量秒数(GMT/UNIX偏移量)原创 2025-11-30 18:25:46 · 253 阅读 · 0 评论 -
C++ 技术人:X86/X64汇编16个关键点快速入门
本文为C++开发者提供X86/X64汇编的16个关键入门要点,重点讲解了参数传递机制。在32位X86架构中,参数通过栈传递(从右向左压栈),而64位架构则使用寄存器与栈结合的方式,不同系统调用约定存在差异。文章通过代码示例和内存布局图,展示了栈帧构建过程、参数访问方式以及Windows/Linux调用约定的区别。掌握这些核心概念能帮助开发者快速理解汇编代码,有效解决内存问题、性能优化等实际开发难题。原创 2025-11-30 01:39:30 · 1057 阅读 · 0 评论 -
System V AMD64 ABI 调用约定:整数参数传递规则
System V AMD64 ABI调用约定规范了x86-64架构下的函数调用参数传递规则。对于整数参数,前6个通过寄存器传递(RDI、RSI、RDX、RCX、R8、R9),第7个及以后的参数通过栈传递,且调用时需要16字节栈对齐。汇编示例展示了8个参数的调用过程:前6个存入寄存器,后2个压栈,同时预留32字节"影子空间"。被调用函数通过RBP偏移量访问栈上参数,并将寄存器参数保存到栈帧局部变量。这种约定优化了常见情况(≤6参数)的性能,同时保证了参数传递的一致性。原创 2025-11-30 00:35:56 · 859 阅读 · 0 评论 -
Linux C++ 64位内存映射文件实现(MMF 64)
该代码实现了一个C++文件内存映射类FileMapping,支持只读、读写和写时复制三种模式。主要功能包括:1) 通过mmap将文件映射到内存;2) 提供类型安全的读写接口;3) 支持移动语义和资源自动管理;4) 包含错误处理和边界检查。类封装了底层系统调用,提供了模板化的数据读写方法,确保类型安全,并实现了文件同步、字符串操作等实用功能。采用RAII模式管理资源,禁止拷贝但支持移动操作,保证异常安全性。原创 2025-11-28 17:14:03 · 194 阅读 · 0 评论 -
Linux C++ 内存映射文件:从原理到实践
Linux C++内存映射文件技术通过将磁盘文件映射到进程地址空间,实现高效零拷贝I/O。该技术采用RAII模式管理资源,支持三种映射模式(只读、读写、写时复制),利用虚拟内存机制提升性能30%-50%。核心类设计包含边界检查、异常安全和移动语义支持,适用于数据库、大数据处理等场景。测试框架覆盖功能、边界、性能和异常等多维度验证,确保系统健壮性。内存映射文件简化了大型文件处理,是高性能应用开发的重要技术。原创 2025-11-26 17:15:25 · 1100 阅读 · 0 评论
分享