- 博客(980)
- 收藏
- 关注
原创 C++ 中频事件队列的设计与实现
本文提出了一种C++中频事件队列设计方案,针对2M EPS量级的量化交易场景。核心采用Strand模型,确保同一股票代码事件严格有序处理,同时实现不同股票事件的并行执行。关键技术包括:1) 无锁多生产者队列;2) 64字节对齐的Strand结构消除伪共享;3) 手动管理的调度链表优化缓存性能等。
2025-12-18 19:29:34
2129
原创 O(log N) 对数计算
Windows 计算器是 log10(N)、而log(N) = log2(N)2、通过 Windows 10/11 计算器、以10为底换底计算方法。3、通过 Windows 10/11 计算器、自然对数换底。计算器输入:100 ln / 2 ln。1、通过 Google 数学计算器。2.4、计算 log2(N)
2025-12-16 13:14:29
130
原创 C++ CRTP 替代虚函数
CRTP(Curiously Recurring Template Pattern)是一种 C++ 编程设计模式,类似于 RAII、SFINAE、这些东西。即派生类继承以自身为模板参数的基类模板,这样子呢,在 C++ 编译替换期间时,它可以知道模版类型信息的,所以,可以调用目标的成员函数。
2025-12-16 09:53:55
401
原创 高频行情事件队列
本文分析了高频行情处理系统的性能瓶颈,提出了改进方案。原系统采用静态哈希分配算法导致负载不均,存在单线程处理瓶颈。新方案引入StrandQueue机制,通过CAS原子操作实现多线程安全访问,保持消息顺序处理的同时提高并行度。系统采用两级调度结构:主队列管理器维护所有股票队列,调度链表动态管理活跃队列,多个驱动线程竞争执行权实现负载均衡。该设计解决了热点股票处理瓶颈,提高了系统吞吐量和资源利用率。
2025-12-12 20:03:38
1586
原创 从券商SDK消息到达,开始运行到下单,再到定位(下单请求)整个过程非常冗余,以下仅先探索前面队列驱动及优化部分。
而且在我的新设想当中,已经不会再存在前面这么多冗余架构,这是没有意义的,额外增加性能开销成本,从一个队列传给另外一个队列,然后多重队列开销,要知道这东西最好的就是一个全局并发队列是性能最好的解决方案,即便是面对高频也是毫无问题,因为自选锁的开销很低,这里的队列,我们直接用 std::list 就可以,但我们需要自定义 std::allocator 内存分配器。其实你知道的,这个是错误的,正确的做法命名是:(next_index_) % handler_ptrs_.size(),来获得派发的上下文索引。
2025-12-12 16:40:02
382
原创 Linux shell 搜索指定后缀名文件,并复制到指定目录。
4、find /目标目录 -name "*.a" -type f -print0 | xargs -0 cp -t /目标路径。3、find /目标目录 -name "*.a" -type f -exec cp -p {} /目标路径 \;5、find /目标目录 -name "*.a" -type f -exec cp -i {} /目标路径 \;6、find /目标目录 -name "*.a" -type f -exec cp -u {} /目标路径 \;
2025-12-08 16:01:05
232
原创 C++ ConcurrentTwoStepQueue:多阶段并发队列
ConcurrentTwoStepQueue:三阶段并发队列 本文提出了一种创新的三阶段并发队列模型ConcurrentTwoStepQueue,通过时序分离技术解决传统并发队列在计算效率与顺序保证之间的矛盾。该设计包含三个关键阶段: 并行Begin阶段:多个线程同时处理不同元素的OnBegin计算,计算顺序与入队顺序无关,最大化利用多核CPU 线性End阶段:严格按序列号顺序处理计算结果,确保最终一致性,通过ends_ack_指针实现顺序重整 有限并行回调阶段:使用CAS机制控制事件回调的并发度,在保证顺
2025-12-05 11:32:46
1194
原创 C++ 并发双阶段队列设计原理与实现
并发双阶段队列设计实现了高效的任务处理机制,通过分离入队与处理阶段提升吞吐量。核心特点包括: 双阶段隔离:入队(Enqueue)与处理(TryBegin/TryEnd)分离,减少锁争用 原子操作:使用自旋锁(SpinLock)保证关键操作的线程安全 状态跟踪:通过递增ID序列管理任务生命周期 异常处理:skip_集合记录失败任务,避免重复处理 扩展接口:虚函数设计支持自定义处理逻辑 该结构适用于高并发场景,如IO密集型任务和实时计算,通过批量处理(DoEvents)和内存预分配优化性能。锁粒度主要集中在en
2025-12-04 16:55:52
1607
原创 VC++ 设置当前编译源文件的默认字符集
摘要:该代码片段是用于设置程序字符集编码的预处理指令。当编译器版本(MSC_VER)大于等于1600时,会执行#pragma指令将执行字符集设置为UTF-8编码。这种设置主要用于确保程序能够正确处理多语言字符,特别是在Visual Studio等支持该指令的开发环境中。该技术常见于需要国际化支持的软件开发中。
2025-12-04 10:40:29
68
原创 GetNanosecondsTickCount 函数(Win32/Linux vDSO)
【代码】GetNanosecondsTickCount 函数(Win32/Linux vDSO)
2025-12-04 10:01:02
98
原创 C++ 把整数转换为中文字符串(支持万亿即兆处理)
该代码实现将整数转换为中文数字字符串的功能。主要特点包括:1) 支持正负数处理;2) 按四位分组处理,支持"万"、"亿"、"兆"等单位;3) 正确处理"零"的显示规则,避免连续多个零;4) 特殊处理"一十"开头的数字;5) 清理末尾多余的零。算法通过分组处理、单位拼接和边界条件检查,实现了数字到中文的准确转换。
2025-12-02 20:06:55
114
原创 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
117
原创 C++ SSE/AVX/SHA/AES指令集检查,用于程序定向优化。
【代码】C++ SSE/AVX/SHA/AES指令集检查,用于程序定向优化。
2025-12-02 10:14:24
214
Intel Smart Sound Technology (ISST) Driver
2024-08-01
serverspeeder 锐速
2022-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅