- 博客(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
原创 从指针碰撞到 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++ 网络库才想明白: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
原创 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
原创 你的 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
原创 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
2020-03-15
1.甲骨文校招真题与面经45页.pdf
2020-03-15
2.大众点评校招真题与面经23页.pdf
2020-03-15
1.微软校招真题与面经47页.pdf
2020-03-15
2.搜狐校招真题与面经47页.pdf
2020-03-15
3.苹果校招真题与面经27页.pdf
2020-03-15
3.小米校招真题与面经46页.pdf
2020-03-16
3.三星校招真题与面经65页.pdf
2020-03-16
3.联想集团校招真题与面经84页.pdf
2020-03-16
3.惠普校招真题与面经49页.pdf
2020-03-16
2.雅虎校招真题与面经96页.pdf
2020-03-16
2.携程校招真题与面经60页.pdf
2020-03-16
OpenCV案例实战之工业印刷品数字识别.zip
2019-08-27
Tensorflow+OpenCV实战行人检测.zip
2019-08-27
2.新浪校招真题与面经43页.pdf
2020-03-16
优衣库校招真题与面经241页.pdf
2020-03-15
bat面试经验+题库.docx
2020-03-18
C++编程FFMpegSDK美颜直播推流实战-基于qt5,opencv视频课程.zip
2020-05-26
c++实战学习OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频教程.zip
2020-05-26
C++Mysql8.0数据库跨平台编程实战.zip
2020-05-26
C++实战手把手教您用ffmpeg和QT开发播放器实战视频课程.zip
2020-05-26
windows动态链接库.rar
2020-05-26
LibeventC++高并发网络编程.rar
2020-05-18
结合CPU-Cache-急速内存池的一种实现.rar
2020-05-18
《500强企业校园招聘经典面试问题汇编》(含答案).doc
2020-03-18
C++多线程PPT和源码.rar
2020-05-26
算法设计与编程实践---基于leetcode的企业真题库.zip
2020-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅