2011-11-08 48 views
2

我有一個從一些哈希鍵到字符串的字典。位串可以是可變長度,但通常< 160位和通常< 80.我有大約80M鍵值對。我可以在內存中存儲不帶填充字符串的字典嗎?

我如何保存在儘可能少的內存儘可能這個數據結構?我不想填充比特串,否則我會失去相當多的空間(沒有雙關語意思)。

我認爲我將有一個字節開頭給人位串的長度存儲。沒關係。

什麼是存儲該字典中記憶最內存高效的方式?

我寧願使用Python,但我開放給其他的選擇。

回答

0

如果您指的是將位串填充爲整數個字節,那麼您可以將所有初始位串的連接存儲在單個位串中,並保存其值爲(bit position, length)形式的元組的字典。

問題是,如果我做了正確的數學計算,那麼這個較大的位串的長度可能超過120億位,所以bit position將需要幾位而不是int。那麼如果你需要填充位本身,我們就回到原點。

但是,如果不同長度的數目是< 64,那麼您可以將長度字段放入6位,並且最終將字典映射到單字節字符串的5字節元組哈希鍵。這對你有用嗎?

相關問題