タグ

profileとqiitaに関するslay-tのブックマーク (1)

  • Python 3.8 では空dictが小さくなる - Qiita

    Python 3.7 では {} で作った空 dict よりも、 dict.clear() で作った空 dict の方が省メモリでした。 >>> import sys >>> d = {} >>> sys.getsizeof(d) 240 >>> d.clear() >>> sys.getsizeof(d) 72 これは dict オブジェクトを新規作成するときに最小サイズのハッシュテーブルを確保し初期化するのに対して、 dict.clear() は shared key dict の仕組みを使って空 dict 専用の共有テーブル(書き込み禁止)を利用しているからです。 空の dict の数は無視できないくらいにはあるので、Python 3.8 で新規に dict オブジェクトを作るときも dict.clear() の結果と同じ共有領域を使うようにしました。 なお Python 3.7 の

    Python 3.8 では空dictが小さくなる - Qiita
  • 1