4

Python は同様のオブジェクトをより近いメモリ位置に格納しますか? idオブジェクトが類似しているため、たとえばliststuplesは、タイプ のオブジェクトよりも互いに近いstrです。

4

1 に答える 1

4

いいえ、もちろん偶然を除いて。これは実装と環境に非常に固有であり、ページサイズのメモリ領域を同じタイプのオブジェクト専用にするメモリ管理スキームが実際にありますが、私が知っている Python 実装は、あなたが説明した動作を示しません。少数の可能性のある例外を除いて、フードの下にキャッシュされることがあり、互いに隣り合っている可能性があります。

表示されているのは、コードの実行中にリストとタプル (リテラルを含まない) が作成される一方で、文字列リテラルがインポート時に作成され (バイトコードの定数の一部)、インターンされるためです大量のメモリがその間に割り当てられている場合 (特に解放されていない場合)、ヒープの状態が十分に異なる可能性があり、チェック時にまったく異なるアドレスが渡されます。

于 2013-05-14T13:10:46.760 に答える