- 博客(243)
- 收藏
- 关注
原创 量化开发2
run_backtest.py 是回测入口,通过解析配置文件加载因子数据并准备回测环境。它首先验证必要参数,调用 FactorAPI 获取因子数据,清洗后写入 Parquet 文件;随后加载模板模块,执行回测流程。核心步骤包括:因子与行情数据对齐、复权处理、停牌/ST/上市信息附加、数据标准化及筛选,最终输出绩效指标。整个过程依赖配置驱动,数据流经多阶段处理,确保回测结果可复现且符合金融逻辑。
2026-11-10 18:03:48
174
原创 量化开发1
factor_specs.py的_needs_review函数用于校验因子公式,返回详细错误信息;但draft_seals.py中的包装函数未保留failure_reasons和原始compiled数据,仅传递笼统提示,导致模型无法精准定位问题。应统一返回格式,保留完整错误详情,提升反馈质量与调试效率。
2026-11-05 16:28:39
180
原创 全面复习8
拷贝构造用于用一个对象初始化新对象,拷贝赋值用于给已经存在的对象赋值。编译器默认会逐成员拷贝,如果成员是指针,只会复制地址,这叫浅拷贝,可能导致多个对象释放同一块内存,产生重复释放。因此管理资源的类要么实现深拷贝,要么禁止拷贝并提供移动操作,遵循 C++ 的三法则或五法则。可能触发扩容,扩容时通常会重新申请更大的连续内存,并移动或拷贝原有元素,因此原来的迭代器、指针和引用都会失效。多线程读写场景如何降低竞争。这种返回临时对象的情况,拷贝省略在满足条件时是语言保证的,不只是编译器“可能进行的优化”。
2026-10-13 15:03:36
170
原创 全面复习7
面向对象是一种以对象为基本组织单元,把数据和操作数据的行为封装在一起,并通过对象之间的协作完成业务的编程思想。C++ 中通常概括为封装、抽象、继承和多态:封装通过privatepublic等访问控制保护对象内部状态;抽象只暴露必要接口、隐藏实现细节;继承用于复用和扩展已有类;多态则允许通过统一接口调用不同对象的具体实现,运行时多态通常依靠基类指针或引用配合virtual实现,编译期也可以通过模板和重载实现静态多态。
2026-10-12 16:44:22
117
原创 全面复习6
C++ 在兼容大量 C 语法的基础上,增加了面向对象、模板、异常、命名空间和 STL 等能力,并通过 RAII、智能指针自动管理资源,因此更适合开发大型复杂软件。另外,构造函数中调用虚函数通常不会发生完整的多态调用,只会调用当前构造阶段对应类的版本。发送给 A,并携带自己的 MAC 地址。如果目标 IP 不在同一网段,主机不会查询远程主机的 MAC,而是查询默认网关的 MAC,然后把数据交给网关转发。命令中的 cache 指的是内核为了提高文件访问效率而使用的缓存,主要是页缓存(Page Cache)。
2026-10-11 14:35:57
191
原创 全面复习5
消息队列以消息为单位传输,支持异步通信,能够实现解耦和削峰,但有内核拷贝,吞吐量有限。但物理链路已经不可用,后续发送的数据得不到 ACK,TCP 会进行超时重传,重传次数或超时达到阈值后,连接才会被内核判定为断开。因此,判断一个任务属于哪种类型,关键是看它的主要性能瓶颈。的析构函数不是虚函数,可能只调用基类析构函数,派生类析构函数不会被正确调用,导致资源泄漏,行为还可能是未定义的。如果是 TCP,目标主机可达但端口没有进程监听,客户端发送 SYN 后通常会收到服务端的 RST,三次握手失败。
2026-10-10 11:49:33
155
原创 全面复习4
在传输层,了解 TCP 的三次握手、四次挥手、可靠传输、滑动窗口、流量控制和拥塞控制,也了解 UDP 的特点和适用场景。应用层方面,掌握 HTTP/1.0、HTTP/1.1、HTTP/2 的主要区别,以及 HTTPS 的 TLS 加密过程。B站或者博客都有一些新领域的一些相关学习资料,了解一下基本概念以及使用,遇到一些不懂的再用AI 辅助细节方面的理解学习;例如查看进程和端口、跟踪日志、搜索错误信息,以及编译调试 C++ 程序时,都会经常用到这些命令。,但每经过一跳,都会重新封装成新的链路层帧。
2026-10-09 11:45:25
145
原创 全面复习3
HTTP版本演进从短连接(1.0)到长连接(1.1),再通过多路复用(2.0)和QUIC(3.0)解决队头阻塞,提升传输效率。长连接减少重复握手开销,提高性能。开发需产品、开发、测试、运维协同。选择C++因其实用性强、底层深入,学习后迁移容易。数组支持随机访问,链表插入删除高效但遍历慢。进程独立资源,线程共享资源,切换开销小。线程状态包括新建、就绪、运行、阻塞、终止。volatile防止编译优化,确保变量实时读取。数据库索引失效于函数操作、非最左匹配、前导通配符等。B+树叶子节点相连,适合范围查询,广泛用于
2026-10-06 19:32:06
236
原创 全面复习2
malloc通过tcache、空闲链表等机制复用内存,仅在不足时才调用brk/mmap申请虚拟内存,物理页按需分配,触发缺页异常。哈希表以O(1)平均复杂度实现键值快速存取,解决冲突常用链地址法或开放寻址。进程与线程共享虚拟地址空间但独立栈,写时复制(COW)提升fork效率。内存管理依赖页表与TLB,支持分页与缺页异常。文件系统通过VFS统一接口,利用inode与dentry缓存加速访问。I/O多路复用结合非阻塞模式提升并发性能。面对慢客户端导致的内存泄漏问题,通过引入输出队列背压与资源配额控制,将内存占
2026-10-04 21:10:08
249
原创 全面复习1
HTTP与HTTPS的核心区别在于安全性:HTTP明文传输,易被窃听篡改;HTTPS基于TLS加密,提供数据加密、完整性校验和身份认证,使用443端口,需证书握手。若需在HTTP上保障安全,需在应用层手动实现加密与密钥管理,但无法保护请求头等元信息。
2026-10-02 20:13:36
155
原创 服务器复习3
该项目实现了一套统一的内存与文件输出状态机,通过std::variant<MemorySegment, FileSegment>队列管理响应数据,严格按序发送,支持send/sendfile,并统一处理EINTR、EAGAIN及资源回收。结合HTTP pipeline与背压控制,基于flow_backlog_bytes动态暂停读取,积压下降后异步续处理输入。所有连接绑定单一EventLoop,跨线程操作经DispatchToOwner投递至归属线程,确保状态安全。采用延迟回收与幂等关闭机制,避免
2026-09-28 21:55:54
379
原创 服务器复习2
每条连接建立后固定归属于一个 Worker,连接的读写、HTTP 解析、路由回调和关闭都在这个线程中串行执行。这样,一个线程就能管理多个连接,不需要为每个连接创建一个线程。如果以后接入耗时计算、同步数据库访问,可以把这部分工作交给业务线程池,完成后再将结果投递回 owner loop,同时处理连接是否已关闭、HTTP pipeline 响应顺序等问题。我理解连接生命周期管理的核心,是用状态机明确连接当前允许做什么,用所有权保证异步访问期间对象有效,再通过统一清理路径保证资源及时且只释放一次。
2026-09-26 22:33:09
342
原创 服务器复习1
AegisNet是基于C++17的高性能Reactor架构HTTP服务器,解决慢客户端、连续请求与连接中断下的响应顺序、资源可控与安全回收问题。通过主Reactor分发连接,各Worker独立处理读写与协议解析,确保串行化与线程安全。核心机制为“整批准入”:响应头与正文整体申请资源,通过RAII保证一致性;输出使用统一FIFO队列,支持内存与文件混合发送,短写保留进度,避免乱序。结合高低水位背压与全局输出预算,有效控制内存与文件句柄,实验显示500个慢连接下峰值RSS从2.48GiB降至5.34MiB,仍维
2026-09-24 12:39:54
176
原创 api大模型接入day11
封装通用大模型 SDK:从零开始,使用 C++ 语言成功接入了多款云端大模型(deepseek-chat、gpt-4o-mini、gemini-2.0-flash),并通过 ollama 接入了本地部署的 deepseek-r1:1.5 模型。将模式修改为 /api/session/(.*) ,通过匹配一个或多个字符,成功捕获传入的 Session ID。解决方案:对于基础的帮助信息拦截,需要将帮助指令的检测逻辑放置在 gflags 库执行参数解析之前,或者严格在 gflags 中注册程序所需的所有参数。
2026-09-14 21:59:06
169
原创 api大模型接入day10
通过我们接管了 HTTP 响应流的控制权,轻松构建出长连接流式输出机制;配合语义明确的 RESTful 路由分发,一套支持异步增量返回的 C++ 高并发后端服务骨架就搭建完成了。在实际业务开发中,我们只需要在对应的 handler 函数中填入具体的业务逻辑(例如对接大模型的 SDK)即可快速落地应用。
2026-09-13 23:04:24
314
原创 ai大模型接入day9
为了同时兼容云端 API 模型和本地部署模型,我们需要利用 C++ 的继承机制来设计配置结构体,并通过基类指针来执行子类对象(多态的典型应用)。在多态场景中,父类指针转换为子类指针就如同把“动物”向下具体化为“狗”或“猫”。,我们可以优雅且安全地处理多态环境下的类型校验问题,极大地提升了 SDK 的稳定性和健壮性。在 SDK 的底层实现中,为了保证资源的安全管理,我们通常会使用。将所有不同的子类配置统一管理,这正是基类指针发挥作用的地方。的方式管理资源的智能指针。:各种不同模型的接入,以及和模型的交互。
2026-09-11 21:15:10
137
原创 ai大模型接入 day7
在基于大模型(LLM)构建多轮对话助手时,底层核心服务通常是“无状态”的。为了支撑真实业务场景,必须在中间件或应用层构建可靠的会话管理(Session Management)机制。
2026-09-09 21:54:30
174
原创 Ai大模型接入day 6
<think>我们只需要根据内容生成≤150字的摘要。内容涵盖本地搭建大模型、Ollama接入、API调用、会话管理。摘要应简洁概括核心要点。</think>本文介绍了本地搭建大语言模型的完整链路:手动三步(下载模型、推理引擎、编写代码)与Ollama一键化方案,并对比远程与本地接入。随后详解Ollama /api/chat接口的参数、代理排查及流式响应解析。最后针对聊天助手引入会话管理,设计Session结构与管理器接口,强调返回会话ID的优势。
2026-09-08 21:30:31
149
原创 Ai大模型接入sdk day5
全量解析重在防御:层层校验字段存在性与类型,保证解析逻辑的健壮性。流式处理重在状态与分包:依靠\n\n规整 TCP 字节流,依托delta$\to$item.done$\to$completed的事件状态机精准把控渲染与连接生命周期。
2026-09-07 20:43:53
374
原创 Ai大模型接入sdk day3
<think>我们只需要根据内容生成摘要,≤150字。内容是关于APIKey环境变量配置、在线游戏通信方案、HTTP机制、C++ httplib等,但用户要求“根据以下内容,生成≤150字的文章摘要”。需要概括整体内容。注意篇幅。</think>本文介绍了Linux中通过环境变量统一配置DeepSeek、ChatGPT等API密钥的安全方法;对比了在线游戏实时通信方案,指出WebSocket最优;解析了HTTP请求体、流式响应及C++ httplib的Result设计;并针对spdl
2026-09-05 21:41:12
199
原创 AI大模型接入SDK day2
<think>我们根据要求生成≤150字的文章摘要。内容是关于C++项目实战,日志系统解析与多模型接入策略模式。需要概括核心点。注意字数限制。输出中文摘要。</think>本文介绍了C++项目中的日志系统规范,以及通过策略模式实现多模型接入,避免if-else高耦合。核心是定义抽象基类LLMProvider及派生类,实现HTTP通信、JSON解析与top_p参数控制,并详述全量响应下SDK的七步流程。
2026-09-04 21:10:08
347
原创 AI大模型接入SDK day1
通过,我们屏蔽了复杂的 HTTP 请求构造、SSE 流式解析以及 Session 上下文管理的底层细节。只需几行配置代码 + 一个 Lambda 回调,就能在 C++ 项目中优雅地接入当下最强大的 DeepSeek 大模型。
2026-09-04 09:42:47
225
原创 高并发服务器day20
随着后续数据不断到来,服务器最终可能凑够第一个请求要求的。第一个请求被认为“接收完成”。但是缓冲区中剩余的数据已经不是一个完整的新 HTTP 请求了,因为前面的一部分已经被错误地当成正文吃掉了。请求行请求头请求正文残缺 HTTP 数据一旦 Content-Length 与实际正文不匹配,后续 TCP 字节流中的 HTTP 请求边界就可能整体错位。
2026-08-08 22:08:56
205
原创 高并发服务器day18
本文介绍了HttpServer模块的设计与实现,主要包括:1. 模块功能:基于TcpServer构建HTTP服务器,负责请求解析、路由分发、响应处理等核心流程;2. 核心机制:通过请求路由表实现请求与业务函数的动态映射,支持GET/POST/PUT/DELETE等方法的分离处理;3. 处理流程:区分静态资源请求(文件读取)和功能请求(业务逻辑执行);4. 架构设计:底层网络通信由TcpServer处理,上层实现HTTP协议解析、路由查找和响应组织功能。整体实现了网络处理与业务逻辑的解耦,支持通过正则表达式灵
2026-08-06 21:17:22
255
原创 高并发服务器day17
本文介绍了HTTP请求处理中的三个核心模块设计: HttpRequest模块: 存储HTTP请求的完整信息(请求行、头部、正文) 提供请求头、查询参数、正文长度等操作接口 包含请求方法、路径、协议版本等关键数据 支持正则表达式匹配结果存储 HttpResponse模块: 封装HTTP响应信息(状态码、头部、正文) 提供重定向设置功能 支持长短连接判断 简化响应内容构造过程 HTTP请求接收上下文模块: 跟踪请求接收状态(请求行/头部/正文接收阶段) 记录解析错误时的响应状态码 保存已解析的请求数据 支持分片
2026-08-05 19:53:28
205
原创 高并发服务器day16(整体服务器运行流程)
本文详细解析了一个基于事件驱动的高并发服务器框架的模块设计与调用流程,以及在此基础上构建的HTTP协议处理模块。文章分为两大部分: 服务器核心框架部分: 采用分层架构(EchoServer->TcpServer->Acceptor->Connection) 通过回调机制实现模块解耦 详细分析了连接建立、数据读写和连接关闭的完整生命周期 重点说明了Acceptor处理新连接与Connection处理客户端数据的区别 阐述了线程池的分发机制和缓冲区管理策略 HTTP协议模块部分: 模块化设计(
2026-08-04 21:34:41
234
原创 高并发服务器day15
Linux服务器开发中需忽略SIGPIPE信号防止进程意外终止。当客户端断开连接后,服务器继续发送数据会触发SIGPIPE信号,默认导致进程退出。解决方法是在Network类构造函数中调用signal(SIGPIPE,SIG_IGN)忽略该信号,并通过全局静态对象提前初始化。同时注意线程池创建时机,避免在构造函数中过早创建。这种处理方式保证了服务器稳定性,即使个别连接异常也不会影响整体服务,可以通过业务代码处理发送失败情况。
2026-08-03 21:25:38
252
原创 高并发服务器day14
本文详细介绍了EventLoop与线程整合的设计方案,重点阐述了LoopThread模块和LoopThreadPool线程池的实现原理。文章首先明确了EventLoop与线程的一一对应关系,指出EventLoop必须在目标线程内部创建以正确记录线程ID。随后提出了LoopThread模块的设计,通过"先创建线程再创建EventLoop"的安全方式实现绑定,并使用互斥锁和条件变量解决初始化同步问题。最后介绍了LoopThreadPool线程池的管理机制,包括线程分配策略和TcpServer
2026-08-02 21:57:24
369
原创 高并发服务器day13
Acceptor模块专注于监听和处理新连接请求,其工作流程包括创建监听套接字、监控读事件、获取新连接并触发回调。该模块职责明确,仅负责连接获取而不处理后续操作,服务器模块需实现并注册回调函数来处理新连接。二者通过回调机制实现协作,体现了清晰的职责划分。
2026-08-01 21:24:43
244
原创 高并发服务器day9
摘要:本文介绍了如何通过整合timerfd和时间轮(timerwheel)实现秒级定时器。timerfd提供内核级定时触发功能,时间轮负责任务调度管理。具体方案是将timerfd设置为每秒触发,当事件触发时调用时间轮的RunTimertask执行到期任务。该定时器可与EventLoop无缝集成,由EventLoop统一监听timerfd事件实现高效异步处理。文章还提到可通过模块关系图了解定时器设计与EventLoop服务器的整体架构(150字)
2026-07-28 20:38:10
210
原创 高并发服务器day8(含服务器完整架构)
本文探讨了Linux线程间通信在高并发网络服务中的优化方案,重点分析了eventfd相较于信号和信号量的优势。eventfd作为轻量级事件通知机制,以其文件描述符特性完美融入epoll事件循环,解决了信号的目标线程不确定性和信号量无法与I/O多路复用统一管理的问题。文章详细解析了eventfd的64位计数器原理、核心API及在EventLoop中的应用,特别强调了通过任务队列和线程ID校验实现线程安全与性能优化。最后,提出了"同线程直接执行,跨线程排队处理"的智能调度策略,确保高并发环境
2026-07-27 21:55:41
1146
原创 高并发服务器day7
本文深入解析了高并发网络服务器中Channel与Poller组件的协同工作原理。通过四个关键阶段:1)服务端启动监听注册;2)新连接事件触发;3)接收连接创建通道;4)数据读写业务闭环,完整呈现了Reactor模式的事件处理流程。其中Poller负责底层事件监控,监听通道处理新连接,连接通道处理具体业务,实现了职责分离与高效事件分发。该架构通过回调机制和状态解耦,构建了清晰、可扩展的高性能网络服务基础。
2026-07-26 21:35:56
244
原创 高并发服务器day6
本文主要探讨Linux高并发网络编程中的两个核心主题:1)系统头文件查找技巧,介绍如何使用find/grep命令快速定位socket.h等系统头文件及宏定义;2)Reactor模式的核心组件设计,重点分析Channel类作为事件分发桥梁的实现原理,包括epoll事件映射、状态管理接口和五种回调机制。同时详细阐述了Poller模块的设计思路,包括其封装epoll的三大核心成员变量(epoll句柄、事件缓冲区和fd-Channel映射表)以及事件注册/分发的完整工作流程。文章通过具体代码示例和系统调用说明,为构
2026-07-25 20:24:46
1119
原创 高并发服务器day4
Buffer模块:高效处理含\0数据的网络传输解决方案 核心问题 在网络传输中,数据常包含\0字符,使用字符串处理会导致提前终止(字符串以\0作为结束符)。Buffer模块通过数组/缓冲区解决这一问题。 设计实现 底层结构:使用std::vector<char>作为线性内存空间 核心要素: 默认空间大小(如1024字节) 读位置指针(read_idx) 写位置指针(write_idx) 核心操作: 写入:处理空间不足(移动数据或扩容) 读取:基于读位置和可读数据量(write_idx - rea
2026-07-23 20:26:23
255
原创 高并发服务器day3
本文分享了Web开发中HTTP请求解析和对象克隆的实用技巧。在HTTP请求处理中,建议使用正则表达式提取方法路径(匹配"^?"前的内容)。对象克隆方面,需特别注意子类对象的深拷贝实现,通过构造新对象确保数据独立性。这些方法能显著提升代码的健壮性和可维护性。(98字)
2026-07-22 22:23:40
38
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅