【Rust日报】2022-11-09 稳定复现的 HashMap 陷阱
创始人
2024-04-05 20:33:22
0

稳定复现的 HashMap 陷阱

当我们看了很多哈希函数的介绍并切换到一个你认为更快的哈希函数上面时,大部分代码都获得了预期的速度提升,但有些部分却莫名其妙地变慢了很多,尤其是在处理大型 hashMap 时。如果这听起来很熟悉,那么您可能遇到了稳定复现的 HashMap 陷阱。Google SwissTable 是 2017 年 CppCon 上被发表的一个高性能的 hashTable 。从 Rust 1.36 开始,SwissTable 就是 Rust HashMap 的标准库实现。虽然它有不错的性能,但 SwissTable 旨在以性能为代价抵御一类 HashDoS 攻击。如果您关心性能并且不关心安全问题,切换到类似 FxHasher 或者 ahash 可以显着提高性能。然而,这个建议的代价却很少有人提及 —— 一些 O(n) hashTable 操作,包括反序列化,在一些 case 下它的时间复杂度有可能会升级到 O(n**2)。下面博文会给大家带来测试 case 以及为什么会发生如此大的性能差距

  • https://morestina.net/blog/1843/the-stable-hashmap-trap

CnosDB 2.0 发布

特色功能:

  • 专为时序数据设计的存储引擎,优化写操作,支持删除和更新操作;

  • 压缩算法由用户灵活指定,压缩比可调;

  • 基于 Apache Arrow 及 DataFusion 实现了查询引擎;

  • 支持标准 SQL,支持 Schemaless 写入;

  • 多索引优化了查询效率;

  • 生态友好,支持 RESTful 接口,支持 Telegraf、Grafana 等通用第三方生态组件。

快速上手指南:http://docs.cnosdb.com GitHub仓库: https://github.com/cnosdb/cnosdb

直播间

https://live.bilibili.com/h5/23768194?broadcast_type=0&is_room_feed=1&spm_id_from=333.999.0.0


From 日报小组 侯盛鑫 mock

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss

  • 微信公众号:Rust 语言中文社区

相关内容

热门资讯

C++函数的默认参数详解 在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实...
feign.FeignExce... 诡异事情描述:A客户端通过feign调用 服务端接口报错feign.FeignExce...
Cesium:经纬度与米制单位... 由于地球是一个不规则的椭球体,准确来讲:地球是一个两极稍扁、赤道略鼓的扁球体;并且地球的南极、北极亦...
CSS知识点大全 目录 CSS Step1.我的第一个CSS程序 Step2.CSS编写的位置 内联样式表 内部样式表...
【零基础高效率学Python】... 目录 一、模块化程序设计 二、定义函数 三、函数调用 四、return语句 五、函数参数 六、函数的...
C++教学创新大赛信息管理系统... C++教学创新大赛信息管理系统[2023-01-08] 2022级《计算思维综合实践...
标签设计方案 设计目标: 400W用户 200个标签 总涉及标签数据 8亿条数据 1. mysql表结构设计 ID...
【python】性能测试工具和... 文章目录前言1.timeit 模块2. cProfile 和 Profile3.质量控制总结 前言 ...
性能优化(应用程序、cpu) 自己在极客时间课程、工作经验、技术博客的总结。 基本知识 时间量级 延时: 发生一次操作的时间均值 ...
C++11的特性:declty... 文章目录1、简介2、decltype 推导规则2.1 exp 是一个普通表达式2.2 exp 为函数...