作者ides13 (juso)
看板Python
標題[問題] ET.iterparse的記憶體使用量
時間Mon Jun 4 18:05:12 2018
請教各位:
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格式不適合當字典使用?
如果轉成資料庫檔會比較快嗎?可以提供建議嗎?謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.32.131
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1528106717.A.1B4.html
→ st1009: 我這種寫法抓一筆之後,會把前一筆釋放,佔用記憶體應該會 06/04 20:27
→ st1009: 小一點,您可以試看看 06/04 20:28
推 st1009: 我日前有嘗試資料庫跑大型xml,後來覺得還是直接python跑 06/04 20:31
→ st1009: 會比較快一些,然後如果要建議,我會覺得這類搜尋要優化速 06/04 20:32
→ st1009: *速度 06/04 20:32
→ st1009: 可以嘗試預處理資料結構,譬如依照編碼弄成一顆二元搜尋樹 06/04 20:33
→ ides13: 謝謝你提供資訊,我做不來二元樹,看來只能跑xml了。 06/05 06:52