• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            std::map查詢效率優化

            0.現狀,數據是個xml文件,每個節點對應的結構體有10個成員變量,共有2000多條數據,用的std::map<string, struct>來保存,用map的find函數進行搜索時的效率極

             

            其低下,循環搜索30條數據竟然要20s+,搓死。

             

            1.為什么這么慢?

            最初懷疑是std::map的效率問題,正考慮是否使用std::hast_map來替換,于是了解下兩者之間的差別:

            std::map是個自平衡的紅黑樹,他的效率是平均的

            hash_map的是一個hash表,只要你的hash算法足夠唯一,你的效率可以達到O(1)

             

            翻書時大牛就在旁邊,就問了他,把情況和他一說。他立刻點名:

            用hash_map的效率確實會比map的高,但你的數據才2000多,兩者在這里數量級上的效率差異應該很小。主要的問題應該在于你的map,你的map的value不是一個指針

             

            ,而是一個大結構體,這會導致搜索時的內存頻繁被交換出去,因而導致效率低下。

             

            2.按照大牛的建議,修改,測試,消耗的時間由原來的20s+變成了0

            posted on 2012-07-21 22:14 多彩人生 閱讀(4764) 評論(1)  編輯 收藏 引用

            評論

            # re: std::map查詢效率優化 2014-05-05 10:09 coderchen

            good  回復  更多評論   

            導航

            統計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产日产久久高清欧美一区| 久久亚洲精品成人AV| 久久综合精品国产一区二区三区 | 久久精品国产亚洲AV无码麻豆 | 伊人久久大香线蕉无码麻豆| 一本久久a久久精品vr综合| 色综合久久88色综合天天| 久久久噜噜噜久久中文字幕色伊伊| 久久99这里只有精品国产| 久久精品国产99国产电影网| 日韩欧美亚洲综合久久影院Ds | 国产精品久久久久久久午夜片 | 婷婷久久综合| 亚洲综合久久综合激情久久| 99久久国产精品免费一区二区| 91精品日韩人妻无码久久不卡| 精品多毛少妇人妻AV免费久久| 久久国产精品一区二区| 亚洲AV乱码久久精品蜜桃| 亚洲伊人久久综合影院| 久久久久人妻精品一区三寸蜜桃| 久久精品欧美日韩精品| 99久久99久久精品国产片果冻| 久久无码人妻精品一区二区三区 | 婷婷久久五月天| 久久久久亚洲精品中文字幕| 国产精品VIDEOSSEX久久发布| 丰满少妇人妻久久久久久| 日本强好片久久久久久AAA| 久久久久免费精品国产| 模特私拍国产精品久久| 亚洲欧洲中文日韩久久AV乱码| 欧美久久久久久精选9999| 国产 亚洲 欧美 另类 久久| 91精品无码久久久久久五月天| 伊人久久综合热线大杳蕉下载| 免费观看久久精彩视频| 亚洲国产精品婷婷久久| 久久香蕉国产线看观看猫咪?v| 蜜桃麻豆www久久国产精品| 伊人久久精品影院|