2
我有一個從一些哈希鍵到字符串的字典。位串可以是可變長度,但通常< 160位和通常< 80.我有大約80M鍵值對。我可以在內存中存儲不帶填充字符串的字典嗎?
我如何保存在儘可能少的內存儘可能這個數據結構?我不想填充比特串,否則我會失去相當多的空間(沒有雙關語意思)。
我認爲我將有一個字節開頭給人位串的長度存儲。沒關係。
什麼是存儲該字典中記憶最內存高效的方式?
我寧願使用Python,但我開放給其他的選擇。
我有一個從一些哈希鍵到字符串的字典。位串可以是可變長度,但通常< 160位和通常< 80.我有大約80M鍵值對。我可以在內存中存儲不帶填充字符串的字典嗎?
我如何保存在儘可能少的內存儘可能這個數據結構?我不想填充比特串,否則我會失去相當多的空間(沒有雙關語意思)。
我認爲我將有一個字節開頭給人位串的長度存儲。沒關係。
什麼是存儲該字典中記憶最內存高效的方式?
我寧願使用Python,但我開放給其他的選擇。
如果您指的是將位串填充爲整數個字節,那麼您可以將所有初始位串的連接存儲在單個位串中,並保存其值爲(bit position, length)
形式的元組的字典。
問題是,如果我做了正確的數學計算,那麼這個較大的位串的長度可能超過120億位,所以bit position
將需要幾位而不是int
。那麼如果你需要填充位本身,我們就回到原點。
但是,如果不同長度的數目是< 64,那麼您可以將長度字段放入6位,並且最終將字典映射到單字節字符串的5字節元組哈希鍵。這對你有用嗎?