[問題] ET.iterparse的記憶體使用量

作者: ides13 (juso)   2018-06-04 18:05:12
請教各位:
https://data.gov.tw/dataset/32500
本國專利技術名詞中英對照詞庫,可以從上面網址下載。檔案格式為xml,而且檔案很大
,約800mb。
我想把它下載下來,當作電腦中的字典使用。於是寫了兩組code。
第一組使用ET.iterparse;第二組使用ET.parse。
https://repl.it/@ides13chen/dictionary
書中寫說ET.iterparse使用的記憶體量比較小,但是我執行後查了電腦中的記憶體使用
量最後到達700mb,和預期的7mb差很多,是我哪裡做錯了嗎?
另外,run了這兩組code後,覺得有點慢。感覺xml格式不適合當字典使用?
如果轉成資料庫檔會比較快嗎?可以提供建議嗎?謝謝。
作者: st1009 (前端攻城師)   2018-06-04 20:27:00
http://codepad.org/bPqMyuly我這種寫法抓一筆之後,會把前一筆釋放,佔用記憶體應該會小一點,您可以試看看我日前有嘗試資料庫跑大型xml,後來覺得還是直接python跑會比較快一些,然後如果要建議,我會覺得這類搜尋要優化速*速度可以嘗試預處理資料結構,譬如依照編碼弄成一顆二元搜尋樹
作者: ides13 (juso)   2018-06-05 06:52:00
謝謝你提供資訊,我做不來二元樹,看來只能跑xml了。

Links booklink

Contact Us: admin [ a t ] ucptt.com