簡體   English   中英

隨着時間的流逝,Python失去了寫入磁盤的性能

[英]Python losing performance writing to disk over time

我編寫了一個代碼,以從非常大的數據文件中獲取輸入,對其執行一些簡單的處理,然后將其存儲為擱置的字典格式。 我有4100萬個條目需要處理。 但是,在我為該擱置命令寫了3500萬個條目之后,性能突然下降並最終完全停止。 知道我該怎么做才能避免這種情況嗎?

我的數據在twitter上,它將用戶屏幕名稱映射到其ID。 像這樣:

Jack 12
Mary 13
Bob 15

我需要非常快速地訪問每個名稱。 像:當我給my_dict[Jack]它返回12

考慮使用更底層的東西。 不幸的是,貨架性能可能會很低。 但這並不能解釋您所看到的速度變慢。

對於許多基於磁盤的索引它幫助 ,如果你能與預期的大小對它們進行初始化,所以他們並不需要重新組織自己的飛行。 我已經看到,這對各種庫中的磁盤哈希表具有巨大的性能影響。

至於您的實際目標,請看以下內容:

http://docs.python.org/library/persistence.html

特別是gdbm, dbhash, bsddb, dumbdbmsqlite3模塊。

sqlite3可能不是最快的,但最容易使用的一種。 畢竟,它具有命令行SQL客戶端。 bsddb可能更快,特別是如果您針對數據大小調整nelem和類似參數時。 而且它確實具有許多語言綁定; 甚至可能超過sqlite。

嘗試創建初始大小為4100萬的數據庫,以便可以對此大小進行優化!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM