0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测试case为什么会发生如此大的性能差距

jf_wN0SrCdH 来源:Rust语言中文社区 作者:EAHITechnology 2022-11-10 10:07 次阅读

稳定复现的 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






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    753

    浏览量

    44028
  • rust语言
    +关注

    关注

    0

    文章

    57

    浏览量

    2999

原文标题:【Rust日报】2022-11-09 稳定复现的 HashMap 陷阱

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CMMB信号发生性能测试原理

    在CMMB性能测试中,信号发生器是关键的测试设备。通过信号发生器可以很方便地产生不同条件配置下的CMMB信号,从而可以完成对被测设备的各项指
    发表于 12-16 11:44 1892次阅读
    CMMB信号<b class='flag-5'>发生</b>器<b class='flag-5'>性能</b><b class='flag-5'>测试</b>原理

    FX2重新枚举会发生什么

    你好,我正试图了解当FX2有电源但USB被拔出后再插入的时候会发生什么。我们的固件使用VANDYAX示例作为骨架代码。我原本以为,如果用户拔出USB电缆并将它插回(电源是单独提供的,而不是通过USB
    发表于 05-30 10:26

    为什么pads9.5原理图转pcb时会发生错误?

    原理图是直接从网上下载的,然后从原理图转pcb是发生如下错误,求助
    发表于 09-26 23:08

    使用FVR会发生什么?

    你好!我有一个AD问题。我使用PIC16F1823I为ADCFVR=>4.096V使用固定电压参考电压,条件Vdd>=4.75VBut我的Vdd=4.0~4.5V和我的AD输入>3.6V如果使用FVR,会发生什么?抱歉打扰了。
    发表于 04-08 10:15

    搭建完Keil工程后进行编译后发生如下的错误

    状况:搭建完Keil工程后进行编译后发生如下的错误:compiling stm32f4xx_fmc.c.....\..\CodeFile\Bsp\stm32f4xx_fmc.c(144
    发表于 08-24 07:12

    在DevEco Studio IDEA中使用华为云iot应用侧开发Java Demo时发生如下错误

    在DevEco Studio IDEA中使用华为云iot应用侧开发Java Demo时发生如下错误
    发表于 10-30 11:02

    有没有人知道为什么调试模式会对RAM保留产生如此大的影响?

    时,SRAM2 不再保留。我已经设置了 PWR_CR3_RRS 位,选项字节 SRAM_RST 是默认设置的,我已经将我的链接器设置为不初始化我希望保留的 SRAM2 部分。有没有人知道为什么调试模式会对 RAM 保留产生如此大的影响?
    发表于 12-07 07:36

    为什么在另一台计算机上加载项目时“ioc”文件的内容会发生如此巨大的变化?

    ”。为什么会发生这种情况,我们如何避免这种情况?看到项目文件被标记为变化如此之大可能是良性的,但是,尤其是对于客户来说,这是令人不安的。
    发表于 01-06 07:25

    那些已经发生会发生的移动医疗猜想

    本文整合了各大研究分析机构曾经预测的那些已经发生会发生的移动医疗猜想,以飨读者:移动医疗APP、无线医疗应用、远程监护规模和M2M应用应有尽有...
    发表于 03-26 10:07 3549次阅读

    论为什么乐视会发生三级“失控”

    本文主要讲述了为什么乐视网会发生三级“失控”现象。
    的头像 发表于 08-16 10:54 2929次阅读

    游戏本与轻薄本的性能测试差距究竟有多大

    众所周知,游戏本相比轻薄本的散热更好,性能释放也更加充分,那么两者性能差距究竟有多大呢?外媒NoteBookcheck就用搭载i9-9980HK的外星人m17 R2、戴尔XPS 15和苹果MacBook Pro进行了
    的头像 发表于 03-02 14:29 5931次阅读

    SpinalHDL Simulation性能提升测试

    昨晚看SpinalHDL的Issues,其中有一个关于性能提升的case 吸引到了我,尝试实验到深夜,测试下在SpinalHDL以及cocotb下的性能优化手段。
    的头像 发表于 08-06 17:10 722次阅读
    SpinalHDL Simulation<b class='flag-5'>性能</b>提升<b class='flag-5'>测试</b>

    Switch case中的case顺序

    ,并按照顺序进行比较,匹配时就跳转到满足条件的语句执行。所以,可以对case的值依照发生的可能性进行排序,把最有可能的放在第一位,这样可以提高性能。 此外,在case中推荐使用小的连续
    的头像 发表于 11-20 18:16 755次阅读

    LED测试不当,会发生电应力损伤:你知道这是什么原因吗?

    LED测试不当,会发生电应力损伤:你知道这是什么原因吗?
    的头像 发表于 12-05 11:38 506次阅读

    IGBT集电极电压超过额定电压会发生什么?

    IGBT集电极电压超过额定电压会发生什么?
    的头像 发表于 12-08 16:55 887次阅读
    IGBT集电极电压超过额定电压<b class='flag-5'>会发生</b>什么?