8
辞書対オブジェクト-どちらがより効率的で、なぜですか?
メモリ使用量とCPU消費量の点でPythonでより効率的なものは何ですか-辞書またはオブジェクト? 背景: 大量のデータをPythonにロードする必要があります。単なるフィールドコンテナーであるオブジェクトを作成しました。4Mのインスタンスを作成して辞書に入れるには、約10分と最大6GBのメモリが必要でした。辞書が準備できたら、それにアクセスするのは一瞬です。 例: パフォーマンスを確認するために、同じことをする2つの単純なプログラムを作成しました。1つはオブジェクトを使用し、もう1つは辞書を使用しています。 オブジェクト(実行時間〜18秒): class Obj(object): def __init__(self, i): self.i = i self.l = [] all = {} for i in range(1000000): all[i] = Obj(i) 辞書(実行時間〜12秒): all = {} for i in range(1000000): o = {} o['i'] = i o['l'] = [] all[i] = o 質問: 私は何か間違ったことをしていますか、それとも辞書はオブジェクトよりも速いのですか?確かに辞書の方が優れている場合、誰かがその理由を説明できますか?