9 桁の整数であるキーと、各キーに関連付けられたブール値を持つインメモリ オブジェクトを作成する必要があります。以下の単純化された例のように、辞書を使用しています。
#!/usr/bin/python
from __future__ import print_function
import sys
myDict = {}
for n in range(56000):
myDict[n] = True
print('Count:',len(myDict),' Size:', sys.getsizeof(myDict))
各キーに関連付けられたブール値を検索して取得できる必要があります。問題は辞書のサイズです。64 ビット Linux システムで Python 2.7 を使用し、上記の例を使用すると、sys.getsizeof() によると、dict のサイズは 3.1 メガバイトになります。(9 桁とブール値を格納するために、エントリごとに約 56 バイト)
(約) 55.000 エントリのブール状態を dict に保存する必要があります。各 dict キーは 9 桁の整数です。辞書のサイズを変更せずに、整数と str(theInteger) をキーとして使用してみました。
このような大規模なデータセットでメモリを節約するために使用する必要がある他の種類のデータ構造または方法論はありますか?