G 技术分享
shared_ptr 循环引用:一次内存泄漏暴露的选型问题
排查一个内存只涨不降的服务,ASAN 报出几万个没释放的 Session,代码里一个 new 都没有。本文从这个可复现的循环引用案例出发,讲清三种智能指针该用在哪、代价是什么,以及 pImpl 不完整类型、make_shared 延迟释放、expired 与 lock 竞态这几个实际会踩的坑。
2026-10-19
#C++#智能指针
0
Blog
格达软件工程师的实战经验、技术选型与行业观察
排查一个内存只涨不降的服务,ASAN 报出几万个没释放的 Session,代码里一个 new 都没有。本文从这个可复现的循环引用案例出发,讲清三种智能指针该用在哪、代价是什么,以及 pImpl 不完整类型、make_shared 延迟释放、expired 与 lock 竞态这几个实际会踩的坑。
快排写不对,多半是 partition 的返回值和边界没搞清。本文给出 Lomuto、Hoare 和三路划分的可运行实现,指出重复元素、全相等数组、空区间等场景下的死循环和栈溢出,并给出测试代码。
开发者和开源作者现在有许多提供免费层级的服务,但要找到所有这些服务并做出明智的决定需要花费时间。这是一个包含软件(SaaS、PaaS、IaaS等)及其他提供免费开发者层级的服务的列表。 这份清单的范围仅限于基础设施开发者(系统管理员、DevOps实践者等)可能觉得有用的内容。我们喜爱所有外部的免费服务,但最好还是保持主题相关。有时候这条界限比较模糊,因此本清单有个人观点;如果我不接受你的贡献,请不要感到被冒犯。