我正在創建一個程序,用於統計大文件中字符串的出現次數。爲此,我使用了字符串作爲鍵和計數作爲值的Python字典。更高效的HashMap(Dictionary)for Python在大數據中使用
該程序適用於最多10000個字符串的較小文件。但是當我在我的實際文件〜2-3 mil字符串上進行測試時,我的程序在達到其原始速度的50%至約50%時開始減速。
我懷疑這是因爲內置的字典並不是要處理如此大量的數據,並且會發生更多的衝突。我想知道是否有任何有效的方法來解決這個問題。我正在尋找替代hashmap實現,甚至製作hashmaps列表(它進一步減慢了它)。
詳情:
- 字符串不事先知道的。
- 字符串的長度範圍是約10 - 200
- 有跡象表明,只出現一次(和將在年底被丟棄)許多字符串
- 我已經執行併發加快它。
- 大約需要1小時完成一個文件
- 我做的其他計算過,而這需要時間,它不小的filesizes放緩。所以我懷疑這是一個hashmap或內存問題。
- 我有足夠的內存,運行時只佔用8GB的32GB。
正如你注意到沒有,做一個更復雜的數據結構並不會讓情況變得更快。 Python的字典經過精心設計和調整,在大多數情況下,你會很難做得更好。 – dimo414