实现一个strong_rc_ptr(非线程安全版本的std::shared_ptr)
原文中文,约12800字,阅读约需31分钟。发表于: 。背景 我们的新项目有个比较复杂的全区全服交易行系统,其中搜索和推荐是高实时性全区服多维度排序的,并且要支持比较复杂的标签交集查询和属性范围查询的自由组合。 当有订单发生变化时,它不仅仅会影响全服状态下搜索和推荐条件的结果变化,也会同时影响商品维度的聚合,交易行层面的数据聚合。
我们的新项目开发了一个全区全服交易行系统,支持高实时性搜索和推荐。为降低搜索开销,我们使用动态和静态索引,但订单变化导致索引刷新影响性能。我们实现了类似Rust的`std::rc::Rc`的非线程安全智能指针,减少CPU缓存失效,提升了10%-16%的性能。未来将继续优化其他模块以减少开销。