自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个时代的落幕,一个时代的开启。

现代C++开发者修炼之道!

  • 博客(448)
  • 资源 (64)
  • 收藏
  • 关注

原创 硬核 C++:从动态类型分发、对象切片(Object Slicing)陷阱到 Faiss 跨设备索引克隆机制

在二次开发 Faiss 时,直接调用在高并发向量检索服务中,复合索引的生命周期管理与跨设备部署需要兼顾性能与安全。避免对复合索引使用默认拷贝构造IndexIVF等复合节点内部由裸指针与own_fields维护从属关系,浅拷贝会导致新旧对象共享底层子节点并继承析构权,在并发热卸载场景下极易触发 Use-After-Free 与 Double Free。通过体系实施深拷贝:Faiss 采用基于 RTTI 的外部访问者模式,解耦了数据结构与克隆策略,并在遍历复制过程中显式重建与,确保生成副本的对象拓扑完全自治。

2026-10-13 17:40:03 241

原创 吃透 C++ 模板元编程到底有多难?为什么只是顺手加了个负号,就把向量检索底层的 IEEE 754 和量化算子全搞崩了?

在将高维向量检索服务从欧氏距离切换到最大内积检索(Maximum Inner Product Search, MIPS)时,工程实现中常会出现一种看似巧妙的处理方式:下游的过滤组件、监控埋点与结果缓存大多依赖“距离越小越好”的既有假设,若在计算完内积后直接乘上一个负号(),便能将内积数值强行包装成相异度,直接塞进原有的最小堆中完成 Top-K 筛选。这种转换在离线单机评测时往往表现正常,但在高并发生产链路上会引发多重隐蔽故障:在底层采用浮点位级变换或基数排序的算子中,正交向量产生的负零(-0.0f。

2026-10-13 17:39:14 197

原创 加了限速线上反而全库假死?拆解RocksDB的C++防饥饿调度

线上分布式存储集群巡检时出现过一次反直觉的性能抖动:监控面板上 NVMe SSD 的顺序写入带宽远低于硬件物理上限,介质整体利用率处于低位;但前台点查服务的读延迟分位值却出现严重劣化,P99 延迟突破上游微服务调用的超时阈值。抓取底层 IO 堆栈发现,存储引擎内部的 LSM-tree 正在并发执行跨层大文件归并(Compaction),大吞吐写入占满了底层硬件队列,导致前台轻量敏感的点查请求排队受阻。

2026-09-28 16:59:19 231 2

原创 CPU 利用率 100%,吞吐却暴跌 40%?一次硬核 C++ 推理引擎的物理内存重构

在配备 128 个物理核心、16 通道 DDR5 内存的双路服务器上部署 70B 级别大模型时,一个经常出现的性能反常现象是:128 个计算核心全线跑满,硬件频率处于标称高位,但自回归解码(Decode)阶段的吞吐仅有 7.6 token/s;而将计算限制在单颗 CPU(64 核)内运行时,解码吞吐反而提升到了 12.8 token/s,性能倒挂幅度超过 40%。利用perf stat。

2026-09-28 16:57:42 572

原创 为什么你的 RocksDB 几乎从不走零拷贝?C++ 存储引擎写放大排查深度指南

在分布式存储引擎的工业实现中,没有脱离约束的绝对优化。零拷贝搬移是带前置条件的防御性通道:它以目标层绝对无交错、存储介质同源、压缩算法对齐为前提,并通过祖父层体积约束主动防御未来可能产生的超大归并风暴。它在浅层消除了物理 I/O,但以容忍局部文件碎片化与推迟垃圾回收为代价。候选优先级是多维系统指标的权衡器不存在放之四海而皆准的银弹。追求极致的低写放大,但在大批量删除场景下会导致严重的墓碑饥饿与读延迟坍塌;能强力回收死数据,但在均匀写入下的写放大表现逊于重叠比策略。监控度量必须坚持物理字节口径。

2026-09-21 13:34:27 594

原创 深度解密 LSM-Tree 核心支撑:C++ 高并发写入下的 Arena 内存池实现

综合操作系统通用分配器、固定尺寸对象池与区域内存池(Arena)的物理特征,三者的核心差异与适用边界如下表所示:维度对比通用分配器固定对象池区域内存池(Arena)分配耗时中等(10~20ns)极低(2~5ns)极低(1~2ns)释放耗时极高(链表合并)极低(无锁入栈)零摊薄(整块归还)对象尺寸任意混合支持单一固定尺寸任意变长切分单对象释放完美支持随时释放完美支持槽位复用完全不支持单个释放碎片特征存在 16B 头部元数据存在槽位闲置仅有块尾截断与对齐损耗生命周期生灭完全随机。

2026-09-21 13:32:34 528

原创 百 GB 级大模型 I/O 解析:现代 C++ 虚拟地址空间编排与零拷贝实战

依据的接口规范与llama.cpp两段式读接口(建立索引 + 按需解析)使用频率最高(日常默认选型)。任何现代模型解析工具、CLI 检查脚本、服务启动配置提取逻辑,都应该无条件遵循两段式规范。把索引建立与数据读取解耦,是构建高性能、高健壮性基础设施的第一步。基于 mmap 的惰性按需分页加载极高频用于交互式客户端与调试环境。当需要快速启动轻量推理、查看特定层输出、或在宿主机上并发运行多个轻量模型时,mmap是开发体验最好的银弹。大块流式顺序读写(Chunked Streaming I/O)

2026-09-17 09:13:26 216

原创 为什么你的 ObjectPool<T> 一碰变长数据就溃败?深入 C++ 变长内存池与双向对齐优化

至此,关于变长内存池批量切分与整体释放的全部原理与实战细节就全部呈现在你面前了。在未来的系统设计与高阶面试中,请牢记这份凝聚了工程实践的落地核对清单:text[内存池工程落地核心核对清单]1. 生命周期审查:池内所有对象的生命周期是否真正一致?2. 纯数据无外源:申请的对象是否为纯粹的 POD 数据?3. 阈值科学裁决:大对象 Fallback 是否严格压制在四分之一?4. 硬件对齐自洽:是否在同一块内采用了双向撞针机制?5. 内联缓冲减负:短命局部池子是否启用了内联小缓冲?

2026-09-17 09:09:11 503

原创 告别 cudaMalloc!深度解密 llama.cpp:基于拓扑序与线性扫描的 C++ 显存复用引擎

在通用编译器与深度学习运行时的理论中,我们必须为这种生命特征建立严谨的形式化描述。对于计算图中的任意一个中间张量 T,我们在一个离散的时间步序列中考察它的生命状态。假设计算图被排定为一个长度为 N 的线性算子发射序列,每个算子操作对应一个整数时间索引。定义一个张量 T 的产出时间为出生点,记作 Birth(T)。这是在图中通过算子内核计算出 T 的那一刻。在此时间点之前,张量 T 不存在任何物理实体,自然不需要分配任何显存偏移。定义张量 T 的消亡时间为死亡点,记作 Death(T)。

2026-09-14 10:05:55 515

原创 C++ 高性能存储引擎设计:从 WriteBatch 内存布局看数据库写入优化

还有一条成本藏得更深。WAL 记录不是随便多大都能一次写下去的。定义的日志格式是分块的:C++三万两千多字节一块,每个物理记录七字节头(CRC、长度、类型)。一条逻辑记录放不进当前块的剩余空间时就要分片,类型标签记录它是整条、首片、中片还是尾片:C++// ...的写入侧按剩余空间切:C++} else {一个百万条记录的批可能被切成几百个物理片。这才是「要么全成要么全不成」在物理层的兑现方式:崩溃发生在中途,日志里会留下一个有kFirstType而没有kLastType的残缺序列。

2026-09-11 16:24:13 216

原创 C++调度与内存类型抽象:看 llama.cpp 如何用 Meta Dev 和 RPC 统领多 GPU 并发

双卡假死”在 C算子工程视角下毫无神秘可言:默认的-sm layer策略底层根本就没有为“多设备并行计算同一个节点”设计机制。在 ggml 的计算图()执行引擎中,模型被粗暴地以 Transformer 层为粒度切分给不同的 C后端 buffer。当前向传播算到第il层时,调度器会强行让主线程在持有该层权重的上挂起计算;其余显卡全在同步等待通过完成跨设备激活张量(Activation Tensor)的显存同步。启动日志里那行经典的。

2026-09-11 16:19:20 488

原创 你的二分查找为什么变慢了?揭秘变长差分数据流中,顶级 C++ 引擎如何重构随机寻址

本文剖析RocksDB通过重启点机制破解前缀压缩与随机定位的矛盾:在变长键值对中,前缀共享虽可压缩空间至原体积的30%以下,却因差分链破坏步长导致定位失效。为恢复O(log N)查找能力,系统每16条记录强制插入完整键并记录其偏移,形成定长索引。块内查找先在重启点数组二分定位区间,再线性扫描至目标,实现空间与性能的工程权衡。

2026-09-11 16:15:00 478

原创 从 std::memory_order 到 Arena 切片:C++ 视角下跳表的极致工程美学!

在千万级并发吞吐的 C++ 存储引擎中,一个数据结构的优劣,本质上是它对 CPU Cache Line、分级内存分配器(Arena)以及内存屏障(Memory Barrier)的榨取效率。很多工程师试图在 MemTable 上做“局部极致优化”——比如用前缀哈希桶去换取纳秒级的点查提升,或者引入更紧凑的 Bw-Tree / Masstree。但这种优化往往会在遇到落盘那一刻付出惨重代价:跨 Cache Line 的间接寻址暴增、TLB 抖动、多路归并导致的动态内存申请,把原本几十微秒的流水线彻底打断。

2026-09-04 15:57:41 499

原创 切成 FP16 整个模型狂吐 NaN?扒开 llama.cpp 源码看 C++ 浮点与量化的致命陷阱

最大值。

2026-09-04 11:20:54 749

原创 从指针碰撞到 64 字节缓存行隔离:C++ 存储引擎如何榨干最后一纳秒内存开销?

64 个并发写线程,每秒往 LSM 树的写缓冲区里塞几万条只有几十字节的键值对。挂上perf top,火焰图里最扎眼的不是 CRC 校验,也不是跳表的层级下潜,而是底层分配器在全局锁和元数据争用上生生烧掉了近 40% 的 CPU;更诡异的是内存账目:库里同时开着几千个列族,每张表刚建出来只写了千把字节,有效载荷加起来不过几 MB,但top里进程的常驻内存(RSS)却一路被顶到上百兆,后台的 flush 线程疯了一样一轮接一轮地往磁盘上刷空表。

2026-09-03 16:59:13 526

原创 纯函数、mmap 与 KV 状态机:用 C++ 构筑高性能 LLM 推理引擎

如果你把一个工业级 C++ 大模型推理引擎(比如llama.cpp)的源码扒到底,定位到它决定“下一个词该吐出什么”的那一行终极指令,展现在你眼前的既没有玄学,也没有复杂的递归与自省,只有这样几行代码:C++或者换成现代 C++ 程序员最熟悉的写法,它等价于:C++一个最基础的线性扫描(Linear Scan),一次发生在连续内存上的argmax。数组里每一个元素都是极其朴素的平坦结构体(POD):C++

2026-09-03 09:46:32 332

原创 为什么说“有序”是存储引擎的底层物理定律?深度拆解 LevelDB/RocksDB 的 C++ 接口模型!

顺序即身份,可见即版本,引用即账单。你把自研引擎的接口按这三条捋一遍,磁盘 IO、缓存策略、性能优化那些下游的活,才有一个立得住的地基。这套模型有它的保质期。它成立,建立在三件事上:key 空间存在一个你定得死的全序、写入是多版本叠加而非原地覆盖、资源靠引用计数而非垃圾回收来收。哪天你的引擎改用了别的存储范式——比如换成纯内存、或者上了带 GC 的运行时——这三条里但凡塌一条,上面整套关于“存在与可见”“顺序即身份”的推论就得重画。到那时,别忘了回来把这三条前提重新对一遍。

2026-09-02 16:12:19 859

原创 写给 C++ 工程师的动态规划:从 DAG 依赖到 CPU 缓存行级空间压缩

用一句人话写清楚。

2026-09-02 09:26:11 655

原创 写了十年 C++ 网络库才想明白:epoll 争的从来不是快慢,而是状态机的所有权!

那版回显服务器只有四十行,accept()之后一个while循环读到底,本机telnet连上去一切正常。开第二个telnet,它不回了——第一个窗口不断开,第二个窗口敲什么都没有回显,可连接明明建立成功了。我盯着那四十行看了很久。语法挑不出错,逻辑也挑不出错。真正出问题的是accept()之后我做的那个隐含决定:这条连接读到哪了、解析到第几个字段、下一步该回什么,我全放在了这个函数的栈帧里。栈帧只有一个,连接有两条。一个 TCP 服务器的并发模型,决定的从来不是快慢,而是。

2026-09-01 10:06:05 338

原创 从 glibc 快路径到 Vyukov 无锁环:决定高性能组件生死的两条底线

在 C++ 社区,“零开销抽象”(Zero-overhead Principle)常被奉为圭臬。很多工程师习惯于把虚函数展开成模板、把互斥锁替换为无锁原子操作、给结构体塞满,以为在编译期把指令压缩到极致,就能自动获得硬件的恩赐。直到系统被扔上多核 NUMA 机器压测——CPU 占用率打满,IPC(每周期执行指令数)断崖式跌破 0.4,L3 Cache 命中率雪崩。翻开反汇编,你的无锁代码确实只生成了一条利落的,没有任何多余指令;

2026-09-01 10:01:26 367

原创 用 3 个神经元切开同心圆:我们对“神经网络加深”的误解到底有多深?

原因藏在数据的一阶统计量里。把两类的均值打出来:外圈。

2026-09-01 09:44:57 327

原创 Agent 不会抛异常,只会给错答案:生产级多 Agent 架构的硬核设计哲学

先问一个我被问过很多次的问题:既然给每个 Agent 起了名字、写了职责,为什么还需要契约?MAST 的数据替我回答了。14 个失效模式里,「违背角色规格」(FM-1.2)占 1.5%,是最低的几项之一。换句话说,Agent 守不守得住角色根本不是主要问题——你让它当风控,它多半真的会当风控。问题在于「风控」这两个字什么都没定义。它不告诉你这个 Agent 读什么、写什么、什么算做完、做不完谁兜底、允许烧多少 token。这些全是编排器需要知道的东西,而它们一样都不在名字里。角色名定义的是语气。

2026-09-01 09:35:46 404 1

原创 跨越 5 个数量级的延迟换来了什么?从 C++ seq_cst 到 Spanner 的实时序真相!

在协调者给出一字千金的最终判决之前,松开这把锁,就等于背叛了分布式承诺。

2026-09-01 09:32:27 532

原创 为什么你的 shrink_to_fit() 毫无作用?聊聊 C++ 内存释放的物理真相!

在许多 C++ 工程师的认知模型里,有一条坚不可摧的“铁律”: 只要严守 RAII,让所有的和容器在离开作用域时正常析构,只要 AddressSanitizer 和 Valgrind 没报一行内存泄漏,我们就对进程的物理资源拥有绝对的掌控权。C++跑完这段函数,top里的RES(物理常驻内存)依然死死焊在的峰值上,寸步不让。你去查 AddressSanitizer,绿得发亮(你去看析构,两千万次分毫不差。绝大多数初入系统底层的 C开发者会在这里陷入深深的困惑与自我怀疑:**既然 C。

2026-09-01 09:30:08 508

原创 别再怪 ET 模式漏事件了!深挖 C++ 接入网关 CLOSE_WAIT 暴涨背后的内核真相!

上面那个。

2026-08-31 14:36:21 585

原创 你的 RAG 为什么在偷偷编造答案?退回到 30 行 C++ 原点,看清向量检索的“致命陷阱”

无论你走的是 B+ 树范围扫描、哈希索引还是 GIN 倒排加速,SELECT吐出来的行集必然精确一致。优化器挑错了执行计划,最坏的结果不过是把 CPU 打满、把 I/O 拖慢几秒,但系统的。然而,当大模型与 RAG 浪潮把 HNSW、IVFFlat 等近似近邻检索(ANN)强行塞进传统关系型内核时,这个坚守了三十年的确定性公理,被悄无声息地击碎了。同一条 SQL、同一个事务快照、底层数据一字未改,仅仅因为会话层改动了一个探测步长变量,返回的数据集就可能凭空换掉几条。因为在pgvector。

2026-08-31 14:33:35 585

原创 彻底搞懂 C++ 资源受限设计:从位图、时间轮到 7 道高频硬核设计题

在 C++ 面试或架构设计时,最快挂掉的方式不是写不出代码,而是太快触碰到了内存的物理边界。上个月那场海量日志处理的设计评审里,白板左侧挂着一道经典题目:在整数日志流中找出出现最频繁的那一个。第一位工程师提笔写下 std::unordered_map<int, int>,还没打完分号就被叫停。主考官只问了一句:“双向链表节点指针加装载因子开销,16 字节的有效载荷(Payload)要在堆上触发多少次 std::allocator 分配?内存碎片和 Cache Line 抖动算过没有?”白板前一片死寂。

2026-08-28 14:49:49 754

原创 为什么你的网络越深越废?几行C++源码暴露出大模型前向传播的致命漏洞!

把网络里的nn.ReLU()逐个换回nn.Tanh(),二十层之后梯度会掉到什么量级——关于这件事,通常的理解是这样的:sigmoid 的导数最大只有 0.25,多层连乘之后梯度指数级衰减;ReLU 在正半轴导数恒为 1,连乘之后还是 1,于是梯度活了下来。这条解释干净、好记、能画图,几乎所有教程都这么讲。这条解释的出处比它的流行度更值得看一眼。

2026-08-28 10:14:25 709

原创 自研 TCP 协议栈开发实战:从 C 语言陷阱到 Modern C++ 零开销抽象

这段代码在 DPDK lcore 轮询线程里跑了整整 40 分钟。几百万个数据包穿梭而过,零丢包、零错包。就在即将收工的瞬间,客户端主动发起了断开连接——瞬间,lcore 触发 SIGSEGV,精准死在了这一行。越界,恰好一个字节。用 gdb 打开 Core dump,si_addr 极其刺眼地贴在 64KB 大页(Hugepages)发送缓冲区的末端之外。为什么前期的动态分析工具全线失灵?

2026-08-27 14:37:53 523

原创 分段锁、采样LRU、垫缓存行都试遍了,为什么你的 C++ 多线程吞吐还是不上去了?

一台十六核的机器,从第十个线程开始,吞吐就再也加不上去了——CPU 平均不到四成,QPS 却像被一根看不见的钉子钉在原地。罩着一张,值里挂一个双向链表节点维护 LRU:我写过这样一版自研 KV,也在不少设计评审上见过同一张图。图上有三处写着「瓶颈」,我按图索骥调过三轮——大锁换分段锁,LRU 链表换采样近似,glibc 的 malloc 换 tcmalloc,还把更新最频繁的计数器垫进自己的 cache line,想堵住 false sharing。每一轮代码都更漂亮,perf top上的热点却纹丝不动。

2026-08-27 13:18:01 669

原创 教科书骗了你二十年:LSTM 从未解决过梯度消失

在深度学习面试和教科书里,有一个被传诵了二十多年的“行业公案”:“标准 RNN 会发生梯度消失,而 LSTM 引入了加性更新的细胞状态(CEC),从而彻底解决了长程依赖问题。如果你翻开 1997 年 Hochreiter 与 Schmidhuber 的原始论文,会发现摘要里藏着一个至关重要的括号:所谓的“常数误差流”,前提是;但在今天 PyTorch 的自动微分图里,这个截断根本不存在——反向传播依然要穿透包含密集矩阵连乘的门控全导数。

2026-08-26 14:10:35 455

原创 卷积其实根本没在做卷积:你从教程里学的那个定义,第一天就是错的

在深度学习的入门教程里,卷积几乎被那张千篇一律的动图垄断了:一个3×3的小框在灰白网格上一格格“滑动”,每挪一步,右侧特征图就蹦出一个数字。但在现代加速器的流处理器(SM)和张量核心(Tensor Core)眼中,当你写下时,底层驱动既没有指针在图像上游走,也没有维护所谓的移动游标。在进入 cuDNN 或 CUTLASS 之前,它早已被im2col或隐式 GEMM 彻底拆解成了一个极其凶残的高维张量收缩(Tensor Contraction)。

2026-08-26 09:46:04 778

原创 分布式 KV 写放大全景拆解:从 WriteBatch 组提交、Raft 日志到 LSM Compaction

想让读只查很少的文件,就得让每一层保持有序且不重叠,而维持这个性质的唯一办法就是不断重写。选择哪些文件参与下一轮重写的逻辑在。

2026-08-25 17:27:47 412

原创 当 C++ 程序员的零开销直觉,撞上 Linux 内核的「零信任」验证器

上面两条路都属于动态探测:内核并没有事先答应你可以挂在上,是你自己找到这个符号、自己决定挂上去的。与之相对的是静态埋点。把五种挂载点摊开,能看出一条很清楚的线:挂载点地址来源谁承诺它稳定触发开销量级tracepoint内核源码里的静态埋点内核(准 UAPI)直接调用ftrace 留的 nop内核 BTF(原型)直接调用kprobekallsyms 里的符号地址无人承诺异常,或优化后跳转USDT二进制里的 SDT note应用作者用户态陷入uprobe。

2026-08-25 09:37:53 737

原创 为什么精通现代 C++ 的工程师,总在 CUDA 异构流水线上踩坑?

两个数字得对照着读,因为它们不在同一个配置上:2.2 倍是四核下跟同时期最优 CPU 解码器的比值,而两个能耗数各自取的是各自的最省电配置。就算把这层不对齐算进去,方向也翻不过来——

2026-08-24 09:30:19 362

原创 100% 缓存命中,磁盘吞吐却拉满:我们在单颗 CPU 上跑 2.78 万亿参数 MoE 时的内存幻觉

text这是一份足以让所有系统工程师血压升高的运行日志:在单颗 CPU 上驱动 2.78 万亿参数的稀疏大模型(Kimi K3)时,LRU 缓存管理器自信地报出了,但下方的 NVMe 固态硬盘指示灯却在疯狂狂闪——。两个命中率在终端里针锋相对:一个是逻辑上的 100%,一个是物理常驻上的 0%。。但在 82,432 个专家的庞大拓扑面前,这种教科书式的工程直觉被彻底粉碎了——因为在训练阶段就被刻意压平的专家激活分布中,。

2026-08-24 09:27:28 475

原创 我们用 C++ 抠出 500 纳秒的无锁网关,凭什么被 OpenResty 一行假 IP 干翻了?

nginx和它后面那句注释,是官方文档里的原样示例,一字未改。任何一个做过 C++ 高性能接入层的工程师,第一次在生产配置里看到这行代码时,通常会经历两个阶段的心理冲击:先是觉得荒谬,接着感到脊背发凉——一个作为核心流量总入口的反向代理,竟然允许你在 upstream 列表里硬编码一个永远 ping 不通的假地址,然后大模大样地把百万 QPS 准确无误地送往真实集群。在 C++ 的系统级世界里,为了把上游选路(Routing Dispatch)的单请求开销严控在。

2026-08-24 09:24:51 439

原创 深度拆解 llama.cpp 采样流水线:C++ 视角下的数学、次序与极致工程

门控之后候选集只剩。

2026-08-19 09:49:11 624

原创 CPU 内存全空,为什么单机 100 万并发就是上不去?带你翻开 Linux 内核

C在一台刚交付的压测机上回了句。换 root 再跑,还是同一句。权限够、参数合法、内核照样拒绝。翻到里那句的判断排在capable()之前,root 也得先过这道门。上面那行1024*1024就是这道门的门框。于是一台默认配置的 Linux,单进程能持有的文件描述符,硬顶就写死在1024*1024这个字面量上。要让 1M 条长连接同时挂在一个进程里,光给每条连接发一个 fd,余量就只剩几万——epoll 实例、监听 socket、日志文件、指标上报的 fd,全得从这几万里出。listen。

2026-08-19 09:46:15 834

原创 拆解 32 位节点头与指针重排:用现代 C++ 手写高性能 Radix Tree 前缀缓存

冷快照的目的是被尽量多的会话共用。一条对话里,从开头到「问这个具体任务的那句 user 消息」之前,全部是稳定的:system prompt、工具定义、检索到的文档、few-shot 示例。第一个 assistant 标记一出现,后面就全是这条会话独有的内容了。切在最靠后那个 user 标记上,等于把这条会话独有的部分整个排除在快照之外。

2026-08-17 11:41:30 510

1.Google校招真题与面经68页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

1.甲骨文校招真题与面经45页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

2.大众点评校招真题与面经23页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

1.微软校招真题与面经47页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

2.搜狐校招真题与面经47页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

3.苹果校招真题与面经27页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

3.小米校招真题与面经46页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

3.三星校招真题与面经65页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

3.联想集团校招真题与面经84页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

3.惠普校招真题与面经49页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

2.雅虎校招真题与面经96页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

2.携程校招真题与面经60页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

OpenCV案例实战之工业印刷品数字识别.zip

使用OpenCV解决实际问题,提升其各个模块横向综合运用能力,学会解决数字识别类问题思路方法!(代码可以直接运行与opencv3.3以上的版本)。

2019-08-27

opencv人脸美化教程源码(可直接调用).zip

opencv人脸美化教程源码(可直接调用写好的函数,用于实际项目需求)。

2019-08-27

电信云NBIOT开发相关资料.rar

电信云NBIOT开发相关资料

2019-08-25

Tensorflow+OpenCV实战行人检测.zip

在掌握opencv与tensorflow基础知识的基础上,使用tensorflow object detection API与opencv dnn 模块,实现从数据标注与tf record数据生成,SSD模型迁移学习训练,模型导出在tensorflow中使用,OpenCV DNN模块中使用(C++与Python) API调用演示,实现从数据到模型训练到导出给OpenCV使用全链路的技术路径,学以致用,举一反三,可以套用到任意的对象检测问题的解决方案中!

2019-08-27

2.新浪校招真题与面经43页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-16

ARM9刷机经验总结.zip

ARM9刷机经验总结

2019-08-25

优衣库校招真题与面经241页.pdf

为帮助大家在求职过程中少走弯路,早日找到满意的工作,编写了《应届毕业生求职宝典》,其内容涵盖职业生涯规划、求职准备、求职途径、笔试、面试、offer、签约违约、户口和档案、求职防骗等求职过程中每一个环节,在广大应届毕业生踏入职场前先给大家进行全面职场分析了解,力图从心态和技巧上给广大应届毕业生以指导。

2020-03-15

bat面试经验+题库.docx

本次Chat,主要从知名互联网公司在面试中喜欢提问的算法入手,给大家详细阐述讲解面试中的高频率算法题。涉及到的算法题主要包括:排序和查找、链表、二叉树、队列、堆栈、字符串以及数组等方面。如果你想在来年的校园招聘中拿下一线互联网的Offer,那么本次Chat将助你玩转算法面试~ 面试,是大家从学校走向社会的第一步。大型互联网公司的校园招聘,从形式上说,面试一般分为2-3轮技术面试+1轮HR面试。但是一些公司确实是没有HR面试的,直接就是三轮技术面。技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。也就是说,一轮技术面试=基础知识和业务逻辑面试+算法面试。

2020-03-18

C,C++后端服务端方向试题全解析.pdf

C,C++后端服务端方向试题全解析.pdf

2026-07-05

煤矿大脑解决方案-汇报材料华为.pdf

煤矿大脑解决方案 人工智能在煤矿安全生产领域的应用 煤矿大脑解决方案 人工智能在煤矿安全生产领域的应用

2020-04-25

C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程.zip

基于c++编程,掌握录制视频(rtsp和系统相机)录制音频(qt)开发方法,掌握音视频各类参数含义,掌握音视频编码(h264+acc),磨皮美颜(opencv),音视频封装(flv),基于rtmp协议推流。掌握ffmpeg音视频时间换算和同步策略。掌握nginx-rtmp等直播服务器配置。

2020-05-26

[彩页]华为智慧城市网络解决方案(智慧灯杆).pptx

华为智慧灯杆总体架构

2020-05-18

c++实战学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程.zip

本课程讲解的是基于直播技术 FFMpeg3.3音视频处理框架,和应用广泛的c++跨平台的QT5库(主要用作界面)。开发的一个完整的屏幕录像机项目,包含桌面录制(基于 QT(跨平台),directx(高效)),(基于QT5)话筒录制,音视频h264编码,MP4封装。QT圆角边框界面。 开发工具基于vs2013,但同样适用于vs更高版本。

2020-05-26

C++Mysql8.0数据库跨平台编程实战.zip

学会 在windows和ubuntu的系统中安装配置mysql8.0和mysql官方图形界面,学会mysql的sql、事务、锁和存储过程的c api,并解决中文乱码、文件存储等问题;

2020-05-26

C++实战手把手教您用ffmpeg和QT开发播放器实战视频课程.zip

这门课程给大家讲解的是基于当前流行FFMpeg视频处理框架和**的QT跨平台库。开发的一个完整的视频播放器,不是基于视频播放控件开发,而是从底层全部实现。 本课程从功能需求分析、基本原理讲解到代码实现演示,让您经历一个实际项目的全过程。 特别适合有一定C或者C++基础,想要提高自己是实战能力学员,学完此门课,可以说你们项目经历里面就可以增加一项,开发过qt和ffmpeg的C++程序,实现了一个播放器的音视频全部功能。 本课程同时也适合与想要学习ffmpeg和qt的同学,本课程学完之后你就已经将ffmpeg可以投入实际的项目应用,对于QT的基本原理你也非常清楚了,可以实现复杂的qt界面,您就可以独立开发出音视频的各种应用,包括无人机,安防,直播视频直播,视频会议,并能够开发出跨平台的应用.

2020-05-26

windows动态链接库.rar

Dynamic Link Library,即动态链接库,是Microsoft在Windows操作系统中实现共享函数库概念的一种实现方式,这种库包含了可由多个程序同时使用的代码和数据 它其中windows中 一些作为DLL实现的文件有:ActiveX控件(.ocx)文件:如windows上的日历控件。控制面板(.cpl)文件:控制面板中的每一项都是一个专用的DLL。设备驱动程序(.drv)文件:如控制打印到打印机的打印机驱动程序。动态链接库在企业级开发中无处不在,本课程包含Windows动态链接库相关知识点,通过浅显易懂的代码与讲解,让你熟悉掌握动态链接库技术!

2020-05-26

LibeventC++高并发网络编程.rar

LIBEVENT:是一款事件驱动的网络开发包,由于采用C语言开发体积小巧,跨平台,速度极快.课程中讲解分析 LIBEVENT原理,跨平台编译事件1O、缓冲1O处理。讲解HTTP服务端开发示例,HTTP客户端请求开发示例,最后基于 LIBEVENTT创建线程池C++框架,并用此框架完成FTP服务器的登录、目录访问、文件上传下载能功

2020-05-18

结合CPU-Cache-急速内存池的一种实现.rar

通过合理设计内存块数据结构,利用数组索引定位到内存链表,并结合CPU-Cache的 优化,实现了一个急速高效的服务端内存池。

2020-05-18

《500强企业校园招聘经典面试问题汇编》(含答案).doc

本次Chat,主要从知名互联网公司在面试中喜欢提问的算法入手,给大家详细阐述讲解面试中的高频率算法题。涉及到的算法题主要包括:排序和查找、链表、二叉树、队列、堆栈、字符串以及数组等方面。如果你想在来年的校园招聘中拿下一线互联网的Offer,那么本次Chat将助你玩转算法面试~ 面试,是大家从学校走向社会的第一步。大型互联网公司的校园招聘,从形式上说,面试一般分为2-3轮技术面试+1轮HR面试。但是一些公司确实是没有HR面试的,直接就是三轮技术面。技术面试中,面试官一般会先就你所应聘的岗位进行相关知识的考察,也叫基础知识和业务逻辑面试。只要你回答的不是特别特别差,面试官通常会说:“咱们写个代码吧”,这个时候就开始了算法面试。也就是说,一轮技术面试=基础知识和业务逻辑面试+算法面试。

2020-03-18

C++多线程PPT和源码.rar

线程与进程相比,它是一种花销小,切换快,更节俭的多任务的操作方式。启动一个新的进程必须分配独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,是一种昂贵的多任务工作方式;而如果在一个进程中用多线程,彼此之间使用相同的地址空间,共享数据,线程切换的代价很小。多编程并发在企业中开发显得尤为重要,本课程包含Windows多线程编程与C++11高并发编程,通过浅显易懂的代码与讲解,让你的多线程编程能力得到质的飞跃,具备开发高并发代码的能力!

2020-05-26

SVN1.9.4中文语言包-x64-zh_CN.rar

SVN1.9.4中文语言包-x64-zh_CN

2020-04-12

opencv完整包.rar

个人整理的完整包,拷贝到C盘,vs里面直接包括文件调用,很方便。

2021-06-24

算法设计与编程实践---基于leetcode的企业真题库.zip

算法设计与分析是考察程序开发人员技术水平的重要内容之一,并且在企业面试、日常工作、都占有重要的地位。然而,不同与数据结构,初步进入软件开发行业的学员往往对于算法存在敬畏和畏怯的心理。为了帮助广大学员朋友切实提升程序开发技巧,积累学习信心,克服畏难情绪,丁宋涛和夏曹俊老师共同精心设计了本门课程。丁宋涛老师常年服务于普通类本科院校的教育教学,同时拥有蓝桥杯全国二等奖、省赛一等奖的指导经验,拥有专业性的教学指导经验;同时,本课程从北京大学onlinejudge入手,从浅入深的讲解基本算法的核心思想;再结合leetcode企业级真题库为广大程序员顺利求职加薪提供助力。leetcode是企业级笔试面试的专业题库,是广大求职人员都需要打磨、参考的宝贵资料。为了能脚踏实地的服务广大的程序员朋友,本课程将以基础的形式为广大求职人员提供完备的参考手册,为提升薪资、获取高阶的工作机会提供切实有效的帮助。

2020-05-26

C++知识点总结.rar

C++知识点汇总

2020-04-18

虚拟串口模拟工具vspd7.2.rar

虚拟串口模拟工具vspd7.2.rar。

2020-04-12

控件消息查看工具ControlSpy.zip

控件消息查看工具ControlSpy.zip

2020-04-12

TortoiseSVN客户端-x64.rar

TortoiseSVN客户端-x64.rar

2020-04-12

navicat12018_premium_cs_x64.rar

navicat12018_premium_cs_x64.rar

2020-04-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除