Python小整数オブジェクトプール


pythonプログラミングでは、プログラムの実行効率を最適化するために、pythonは小さな整数オブジェクトプールと呼ばれる東東を使用します.プログラムは頻繁にいくつかの整数を使用するため、この小さな整数オブジェクトプールがあれば、小さな整数常駐メモリをゴミ回収メカニズムで処理することはなく、メモリ内で整数を頻繁に作成し、破棄することによる消費を回避します.
1.小整数オブジェクトプール
小整数オブジェクトプールは、実際には262(257+5)のサイズのポインタ配列であり、小整数を表す範囲は[-5257](-5を含む、257を含まない)であり、すなわち、この262個の小整数を指すポインタが含まれている.
コードを検証します.
x = -5
y = -5
print id(x) == id(y)	# True
x = -6
y = -6
print id(x) == id(y)	# False
x = 257
y = 257
print id(x) == id(y)	# False

pythonプログラムが実行されると、まず数値が[-5257]内であるか否かを判断し、この範囲であればメモリ内の小整数オブジェクトプールから直接取得し、この範囲でなければ汎用整数オブジェクトプールから初期化して取得する(現在の汎用整数オブジェクトプールが存在しないか、または満タンであれば、新しいオブジェクトプールをメンテナンス行列に追加する).
2.まとめ
1.           [-5,257) 262    ;
2.           ,       ;
3.                        。

参考リンク:PYTHONソース読解-INT