第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

急求答案 。。。高手進。。、。、關(guān)于文件查找替換的效率問題。。

急求答案 。。。高手進。。、。、關(guān)于文件查找替換的效率問題。。

冉冉說 2018-12-07 03:59:03
項目需要,我寫了個程序。 邏輯很簡單。 有15000個不同的字符串、、 要去大概4000個文件中去匹配。。替換成固定編碼格式。。。 1個字符串。進去。運行1個文件替換。需要0.005秒。。最普通的代碼寫法。。讀出。修改。寫入。 這樣循環(huán)替換完4000個。。需要20秒一次。。。(4000個文件其實只有一兩個是有那個字符串的。。但你不知道哪兩個) 但是。。這樣的過程需要15000次。。因為有15000個不同的字符串在等著。。。 這樣我計算了下。。。需要3.4天的樣子。。我掛在了服務(wù)器上運行。。但還是等不及。。 急求高手解決此問題。。 for (int m = 0; m < files.Count; m++)//files.Count有四千。。、 { try { StreamReader sr = new StreamReader(files[m].ToString(), Encoding.GetEncoding("utf-8")); string str = sr.ReadToEnd(); sr.Close(); //替換文本 ?if (str.Contains(oldCon)) { str = str.Replace(oldCon, newCon); have = true; } //更改保存文本 StreamWriter sw = new StreamWriter(files[m].ToString(), false); sw.WriteLine(str); sw.Close(); } catch { continue;//某文件如有問題。繼續(xù)。。文件列表已經(jīng)過處理。不會有問題。。、 } }
查看完整描述

5 回答

?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

4000個文件的大小是多少?可以考慮加內(nèi)存里,或者分幾批加入內(nèi)存。先讀所有文件到HashTable里,并對應(yīng)各文件名或其它防止重復(fù),替換字段串在內(nèi)存中保存,完事后再保存,但是要防止數(shù)據(jù)丟失。

也可以用多線程,開N個線程去處理這些操作。

查看完整回答
反對 回復(fù) 2019-01-21
?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

應(yīng)該反過來處理吧。

?

一個文件處理完1.5W個字符串之后,換下一個文件

就是一個文件一個文件的處理

?

一個字符串在4000個文件處理,相當于要把4000個文件打開1.5萬次,并加載到內(nèi)存中

查看完整回答
反對 回復(fù) 2019-01-21
?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

這樣就達不到效果了。。4000個文件是個整體。。
查看完整回答
反對 回復(fù) 2019-01-21
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

不清楚你具體業(yè)務(wù)是什么,要達到什么效果,能說明一下么?
查看完整回答
反對 回復(fù) 2019-01-21
  • 5 回答
  • 0 關(guān)注
  • 470 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號