C檔案讀入問題(高手進)

2022-08-11 11:25:04 字數 1330 閱讀 2132

1樓:匿名使用者

我認為,這種大資料量的記錄,應該是把它分成n個塊,然後再分批讀如記憶體,例如分成10000塊,每塊是2000條資料。

其實,本人認為,首先應該建立乙個有意義的索引,這樣可以節省查詢效率。

本人認為使用資料庫的方法很對,但是csharp小菜鳥,chenmeng55cm,deaddevil 三位高手不要忽略一點,就是樓主的架構就是這樣,架構不能因為這麼一點小問題就重做啊。再說,為了提高效率,可以給文字檔案寫乙個索引功能的方法。應該也是可行的啊。

處理千萬級記錄的時候,可以使用實時模糊查詢的方式,輸入乙個字就查詢乙個字,然後再配合資料結構的二分法查詢,這樣做可以提高效率。

嘗試使用多執行緒進行查詢

2樓:csharp小菜鳥

千萬條資料儲存到文字檔案???

這是乙個不合理的出發點導致了你的不合理的程式不深入你的錯誤,現在你把資料儲存到了hashtable,我相信這也需要點時間,好了,算你儲存在hashtable成功,現在你需要判斷資料是否出現過,這個沒辦法只能夠一條一條的對比,一直到盡頭。。。

呵呵記憶體瓶頸是必然的事情,樓上說的好,分塊,然後一塊一塊的查詢,這個時候估計效能特別的慢,其實你應該把資料儲存到資料庫阿!!!

然後建立群集索引,然後再查詢對比,那樣快的多!!!

3樓:匿名使用者

那麼只有最後的辦法了

一,如果擔心搜尋速度慢,那就加大流的緩衝區大小,如:byte buffer = new byte[bf.length];

二,如果擔心記憶體佔用,那就犧牲查詢時間來給系統留出cpu執行時間,如: thread.sleep(自定);

如果同時想要速度和效能,c++是最好的選擇!因為對地層的東西封裝比較全!

4樓:匿名使用者

你把這麼大資料放在記憶體中讀取是不科學的,正如樓上所說的放入資料庫中,然後在資料庫中做些操作(建索引,表分割槽什麼的),能大大提高你的效率!

5樓:威嚎

為了繞開記憶體問題,我建議你還是存到資料庫中,畢竟它的效率比較高,而且安全性強,會有比較好的方式去查詢

6樓:支崖靜

還不如存在乙個datatable中, 然後用select就可以查到了.

7樓:匿名使用者

頂上面的幾位

三層構架說的就是要盡可能的把資料,處理,顯示分開,所以你這個問題不要考慮了,沒意義,什麼樣的高手也不能把記憶體給你高出來

8樓:匿名使用者

按照乙個index做分類儲存 構造呼叫樹

然後根據樹進行搜尋 空間複雜度 o(log n)

網路c 程式設計高手進 CFile問題

你在 settings 中選 c c 標籤,在category中選 precompiled headers 然後選第乙個 not using precompiled headers 試試?難道你不是建立的mfc的程式,如果要讓非mfc的程式支援mfc的話,在工程的 settings 中的 gener...

delphi高手進,刪除資料夾問題!急

建立資料夾可以用forcedirectories函式,可以建立深層資料夾 刪除資料夾,可以用到下面的函式,引數為資料夾的路徑,如 d show uses shellapi function deletedirectory p string boolean varf tshfileopstruct b...

電腦問題高手進,電腦問題高手進

有可能是尋找網路而造成的.如果你的本地連線是自動獲得ip位址.而且在本地連線屬性裡 連線後在通知區域顯示圖表 和 此連線被限制或無連線時通知我 沒打上鉤.開機時機器會自動尋找ip位址.使啟動變慢.這只是一種可能.還有其他的可能 你可以使用優化軟體優化一下 具體如何優化我也不是很清楚 這其實不是什麼問...