0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

測(cè)試case為什么會(huì)發(fā)生如此大的性能差距

jf_wN0SrCdH ? 來(lái)源:Rust語(yǔ)言中文社區(qū) ? 作者:EAHITechnology ? 2022-11-10 10:07 ? 次閱讀

穩(wěn)定復(fù)現(xiàn)的 HashMap 陷阱

當(dāng)我們看了很多哈希函數(shù)的介紹并切換到一個(gè)你認(rèn)為更快的哈希函數(shù)上面時(shí),大部分代碼都獲得了預(yù)期的速度提升,但有些部分卻莫名其妙地變慢了很多,尤其是在處理大型 hashMap 時(shí)。

如果這聽(tīng)起來(lái)很熟悉,那么您可能遇到了穩(wěn)定復(fù)現(xiàn)的 HashMap 陷阱。

Google SwissTable 是 2017 年 CppCon 上被發(fā)表的一個(gè)高性能的 hashTable 。

從 Rust 1.36 開(kāi)始,SwissTable 就是 Rust HashMap 的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)。

雖然它有不錯(cuò)的性能,但 SwissTable 旨在以性能為代價(jià)抵御一類(lèi) HashDoS 攻擊。

如果您關(guān)心性能并且不關(guān)心安全問(wèn)題,切換到類(lèi)似 FxHasher 或者 ahash 可以顯著提高性能。

然而,這個(gè)建議的代價(jià)卻很少有人提及 —— 一些 O(n) hashTable 操作,包括反序列化,在一些 case 下它的時(shí)間復(fù)雜度有可能會(huì)升級(jí)到 O(n**2)。

下面博文會(huì)給大家?guī)?lái)測(cè)試 case 以及為什么會(huì)發(fā)生如此大的性能差距

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

CnosDB 2.0 發(fā)布

特色功能:

專(zhuān)為時(shí)序數(shù)據(jù)設(shè)計(jì)的存儲(chǔ)引擎,優(yōu)化寫(xiě)操作,支持刪除和更新操作;

壓縮算法由用戶(hù)靈活指定,壓縮比可調(diào);

基于 Apache Arrow 及 DataFusion 實(shí)現(xiàn)了查詢(xún)引擎;

支持標(biāo)準(zhǔn) SQL,支持 Schemaless 寫(xiě)入;

索引優(yōu)化了查詢(xún)效率;

生態(tài)友好,支持 RESTful 接口,支持 Telegraf、Grafana 等通用第三方生態(tài)組件。

快速上手指南:http://docs.cnosdb.com

GitHub倉(cāng)庫(kù): https://github.com/cnosdb/cnosdb






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    769

    瀏覽量

    44188
  • rust語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    3016

原文標(biāo)題:【Rust日?qǐng)?bào)】2022-11-09 穩(wěn)定復(fù)現(xiàn)的 HashMap 陷阱

文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CMMB信號(hào)發(fā)生性能測(cè)試原理

    在CMMB性能測(cè)試中,信號(hào)發(fā)生器是關(guān)鍵的測(cè)試設(shè)備。通過(guò)信號(hào)發(fā)生器可以很方便地產(chǎn)生不同條件配置下的CMMB信號(hào),從而可以完成對(duì)被測(cè)設(shè)備的各項(xiàng)指
    發(fā)表于 12-16 11:44 ?1952次閱讀
    CMMB信號(hào)<b class='flag-5'>發(fā)生</b>器<b class='flag-5'>性能</b><b class='flag-5'>測(cè)試</b>原理

    FX2重新枚舉會(huì)發(fā)生什么

    你好,我正試圖了解當(dāng)FX2有電源但USB被拔出后再插入的時(shí)候會(huì)發(fā)生什么。我們的固件使用VANDYAX示例作為骨架代碼。我原本以為,如果用戶(hù)拔出USB電纜并將它插回(電源是單獨(dú)提供的,而不是通過(guò)USB
    發(fā)表于 05-30 10:26

    為什么pads9.5原理圖轉(zhuǎn)pcb時(shí)會(huì)發(fā)生錯(cuò)誤?

    原理圖是直接從網(wǎng)上下載的,然后從原理圖轉(zhuǎn)pcb是發(fā)生如下錯(cuò)誤,求助
    發(fā)表于 09-26 23:08

    使用FVR會(huì)發(fā)生什么?

    你好!我有一個(gè)AD問(wèn)題。我使用PIC16F1823I為ADCFVR=>4.096V使用固定電壓參考電壓,條件Vdd>=4.75VBut我的Vdd=4.0~4.5V和我的AD輸入>3.6V如果使用FVR,會(huì)發(fā)生什么?抱歉打擾了。
    發(fā)表于 04-08 10:15

    搭建完Keil工程后進(jìn)行編譯后發(fā)生如下的錯(cuò)誤

    狀況:搭建完Keil工程后進(jìn)行編譯后發(fā)生如下的錯(cuò)誤:compiling stm32f4xx_fmc.c.....\..\CodeFile\Bsp\stm32f4xx_fmc.c(144
    發(fā)表于 08-24 07:12

    在DevEco Studio IDEA中使用華為云iot應(yīng)用側(cè)開(kāi)發(fā)Java Demo時(shí)發(fā)生如下錯(cuò)誤

    在DevEco Studio IDEA中使用華為云iot應(yīng)用側(cè)開(kāi)發(fā)Java Demo時(shí)發(fā)生如下錯(cuò)誤
    發(fā)表于 10-30 11:02

    有沒(méi)有人知道為什么調(diào)試模式會(huì)對(duì)RAM保留產(chǎn)生如此大的影響?

    時(shí),SRAM2 不再保留。我已經(jīng)設(shè)置了 PWR_CR3_RRS 位,選項(xiàng)字節(jié) SRAM_RST 是默認(rèn)設(shè)置的,我已經(jīng)將我的鏈接器設(shè)置為不初始化我希望保留的 SRAM2 部分。有沒(méi)有人知道為什么調(diào)試模式會(huì)對(duì) RAM 保留產(chǎn)生如此大的影響?
    發(fā)表于 12-07 07:36

    為什么在另一臺(tái)計(jì)算機(jī)上加載項(xiàng)目時(shí)“ioc”文件的內(nèi)容會(huì)發(fā)生如此巨大的變化?

    ”。為什么會(huì)發(fā)生這種情況,我們?nèi)绾伪苊膺@種情況?看到項(xiàng)目文件被標(biāo)記為變化如此之大可能是良性的,但是,尤其是對(duì)于客戶(hù)來(lái)說(shuō),這是令人不安的。
    發(fā)表于 01-06 07:25

    那些已經(jīng)發(fā)生會(huì)發(fā)生的移動(dòng)醫(yī)療猜想

    本文整合了各大研究分析機(jī)構(gòu)曾經(jīng)預(yù)測(cè)的那些已經(jīng)發(fā)生會(huì)發(fā)生的移動(dòng)醫(yī)療猜想,以饗讀者:移動(dòng)醫(yī)療APP、無(wú)線(xiàn)醫(yī)療應(yīng)用、遠(yuǎn)程監(jiān)護(hù)規(guī)模和M2M應(yīng)用應(yīng)有盡有...
    發(fā)表于 03-26 10:07 ?3569次閱讀

    論為什么樂(lè)視會(huì)發(fā)生三級(jí)“失控”

    本文主要講述了為什么樂(lè)視網(wǎng)會(huì)發(fā)生三級(jí)“失控”現(xiàn)象。
    的頭像 發(fā)表于 08-16 10:54 ?3005次閱讀

    游戲本與輕薄本的性能測(cè)試,差距究竟有多大

    眾所周知,游戲本相比輕薄本的散熱更好,性能釋放也更加充分,那么兩者性能差距究竟有多大呢?外媒NoteBookcheck就用搭載i9-9980HK的外星人m17 R2、戴爾XPS 15和蘋(píng)果MacBook Pro進(jìn)行了
    的頭像 發(fā)表于 03-02 14:29 ?6036次閱讀

    SpinalHDL Simulation性能提升測(cè)試

    昨晚看SpinalHDL的Issues,其中有一個(gè)關(guān)于性能提升的case 吸引到了我,嘗試實(shí)驗(yàn)到深夜,測(cè)試下在SpinalHDL以及cocotb下的性能優(yōu)化手段。
    的頭像 發(fā)表于 08-06 17:10 ?834次閱讀
    SpinalHDL Simulation<b class='flag-5'>性能</b>提升<b class='flag-5'>測(cè)試</b>

    Switch case中的case順序

    ,并按照順序進(jìn)行比較,匹配時(shí)就跳轉(zhuǎn)到滿(mǎn)足條件的語(yǔ)句執(zhí)行。所以,可以對(duì)case的值依照發(fā)生的可能性進(jìn)行排序,把最有可能的放在第一位,這樣可以提高性能。 此外,在case中推薦使用小的連續(xù)
    的頭像 發(fā)表于 11-20 18:16 ?859次閱讀

    LED測(cè)試不當(dāng),會(huì)發(fā)生電應(yīng)力損傷:你知道這是什么原因嗎?

    LED測(cè)試不當(dāng),會(huì)發(fā)生電應(yīng)力損傷:你知道這是什么原因嗎?
    的頭像 發(fā)表于 12-05 11:38 ?584次閱讀

    IGBT集電極電壓超過(guò)額定電壓會(huì)發(fā)生什么?

    IGBT集電極電壓超過(guò)額定電壓會(huì)發(fā)生什么?
    的頭像 發(fā)表于 12-08 16:55 ?1032次閱讀
    IGBT集電極電壓超過(guò)額定電壓<b class='flag-5'>會(huì)發(fā)生</b>什么?