• <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>
            posts - 7,  comments - 64,  trackbacks - 0
                我想寫一個(gè)爬蟲程序。現(xiàn)在需要存放訪問過的URL。如果用數(shù)據(jù)庫存放則太慢,若放在默認(rèn)的SET容器中,當(dāng)?shù)竭_(dá)一定數(shù)量時(shí)會(huì)使程序崩潰。
            現(xiàn)在我想把文件直接映射成set<string>容器的空間。也就是set申請的內(nèi)存全部在我所指定的文件中。
            另外程序可用4G空間中有2G是系統(tǒng)保留的。如果進(jìn)行文件映射后,是不是也只能訪問2G的空間?
            最后,我想問問,如果我進(jìn)行了文件映射,同時(shí)又從實(shí)際內(nèi)存中申請了一快內(nèi)存,如何保證映射的地址和從內(nèi)存中申請的地址不重復(fù)呢?
            請大家?guī)蛶兔Γ詈笥性创a或網(wǎng)站參考。
            posted on 2010-12-10 16:18 HIT@ME 閱讀(2029) 評論(6)  編輯 收藏 引用

            FeedBack:
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。[未登錄]
            2010-12-10 18:49 |
            自己研究下set的第三個(gè)模板參數(shù)
            basic_string也同樣是第三個(gè)模板參數(shù)
              回復(fù)  更多評論
              
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。[未登錄]
            2010-12-10 20:58 | hdqqq
            文件映射無助于增加進(jìn)程可用地址空間。除非你修改set的實(shí)現(xiàn),把對節(jié)點(diǎn)的訪問直接
            對應(yīng)到對文件的訪問,但是在大數(shù)據(jù)量的情況下,隨機(jī)訪問的效率很差。

            關(guān)鍵還是在于減少內(nèi)存的使用上

            1. stl 中的set使用紅黑樹實(shí)現(xiàn)的,一個(gè)節(jié)點(diǎn)有左,右,父節(jié)點(diǎn)三個(gè)指針和一個(gè)紅黑標(biāo)志位.32位系統(tǒng)下最少占用13個(gè)字節(jié),
            考慮內(nèi)存對齊下,可能使用到16個(gè)字節(jié),在大數(shù)據(jù)量的情況下,為了保持這個(gè)樹結(jié)構(gòu),額外使用的內(nèi)存是很多的,可以考慮使用hash set.

            2. url長度都比較長,可考慮計(jì)算md5 hash,減少存儲占用.

            3. 不要妄想把所有數(shù)據(jù)都存在內(nèi)存,總會(huì)有內(nèi)存耗盡的時(shí)候,另外,如果程序異常或者崩潰,所有數(shù)據(jù)將丟失.

            我以前實(shí)現(xiàn)的一種方式是,以數(shù)據(jù)庫為主要存儲,內(nèi)存作為優(yōu)先查詢cache.
            1. 數(shù)據(jù)庫建散列表, 以十六進(jìn)制 0-F 開始,根據(jù)md5第一位決定存儲表,用于存儲md5值,并對md5建索引加快查詢.
            2. 在內(nèi)存中用set或map保存md5值,查詢時(shí)先計(jì)算url md5值,再查詢內(nèi)存,如果不存在,則從數(shù)據(jù)庫加載.如為新url,先存入內(nèi)存.
            3. 內(nèi)存總量到一定閥值,進(jìn)行數(shù)據(jù)保存,并清空內(nèi)存cache.

            不過這種實(shí)現(xiàn)存在cache命中問題,你可以一次加載整張表,也可以用 like 查詢條件,減少數(shù)據(jù)庫返回的記錄數(shù).

            已有的php實(shí)現(xiàn),內(nèi)存cache200萬條記錄,總內(nèi)存使用在1200M左右,可長時(shí)間運(yùn)行,沒有內(nèi)存使用問題.
              回復(fù)  更多評論
              
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。
            2010-12-11 16:15 | 匿名人士
            按你描述,問題可以拆成兩個(gè),1是文件到內(nèi)存數(shù)據(jù)的轉(zhuǎn)換,2是數(shù)據(jù)的組織

            一個(gè)一個(gè)來解決。問題1 用序列化就得了,boost還是什么的隨意
            問題2 你可以不用把數(shù)據(jù)類(假設(shè)是用序列化)的本體放set/map里啊,自己用new來控制數(shù)據(jù),map里只索引數(shù)據(jù)的引用或指針,那不就得了  回復(fù)  更多評論
              
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。
            2010-12-12 20:26 | 陳梓瀚(vczh)
            CreateFileMappingObject?這個(gè)api是不是這么叫我忘記了
            第二個(gè)是set最后一個(gè)模板參數(shù),是一個(gè)allocator,用來控制set內(nèi)部的內(nèi)存。  回復(fù)  更多評論
              
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。
            2010-12-12 21:31 | 空明流轉(zhuǎn)
            現(xiàn)在首頁求助都成風(fēng)了。。。  回復(fù)  更多評論
              
            # re: 求助。關(guān)于如何將文件映射成STL容器內(nèi)存空間的方法。
            2010-12-12 21:34 | 空明流轉(zhuǎn)
            回答你部分問題的說,
            第一個(gè),內(nèi)存映射會(huì)吃你的地址空間,所以也就是只有2G可用,在32bit下。
            如果你需要巨大的空間,建議使用64bit,或者使用其他的存儲方案,比方說B-Tree;
            第二個(gè)問題,關(guān)于Address Overlapping的問題,因?yàn)榈谝粭l,所以不會(huì)的。  回復(fù)  更多評論
              

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(5)

            隨筆檔案

            test

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久高清免费视频| 久久久久久亚洲精品成人| 久久天堂电影网| 精品久久久久香蕉网| 国产精品女同久久久久电影院| 久久超乳爆乳中文字幕| 久久综合九色综合精品| 亚洲精品无码专区久久同性男| 亚洲国产婷婷香蕉久久久久久| 伊人久久大香线蕉AV色婷婷色| av无码久久久久久不卡网站| 日本加勒比久久精品| 奇米综合四色77777久久| 91久久精品无码一区二区毛片| 久久天天躁狠狠躁夜夜2020 | 国产免费久久精品丫丫| 无码任你躁久久久久久老妇| 无码人妻少妇久久中文字幕蜜桃 | 国产成人无码精品久久久免费| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久久久亚洲AV片无码下载蜜桃| 日产精品久久久久久久| 欧美激情精品久久久久| 无码精品久久久久久人妻中字| 97超级碰碰碰碰久久久久| 香蕉久久夜色精品升级完成| 久久国产精品波多野结衣AV| 91精品国产91久久综合| 亚洲综合伊人久久综合| 性做久久久久久久久浪潮| 久久精品国产亚洲AV无码麻豆| 免费精品久久天干天干| 久久久无码精品午夜| 久久久精品国产亚洲成人满18免费网站 | 亚洲欧洲中文日韩久久AV乱码| 久久人妻AV中文字幕| 久久国产精品偷99| 777久久精品一区二区三区无码| 97久久超碰国产精品2021| 国产精品99久久久精品无码| 久久夜色精品国产亚洲|