[解決済み] Pythonの変数のメモリサイズ [重複]について
質問
大きな数字の計算をするPythonのコードを書いているのですが、計算で使用するメモリについて重大な懸念があります。
したがって、私は各変数のすべてのビットをカウントしたいです。
例えば、私の場合、変数 x を表現するためのビットの数を数えたいとします。 x .
以下のコードは明らかに無駄です。
x=2**1000
len(x)
したがって、私は次のコードを使用するように回します。
x=2**1000
len(repr(x))
変数 x は(10進数で)です。
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
が、上記のコードでは 303
上記の長い長連は長さ302であるため、私は 303 は文字列の長さだけに関係するはずです。
さて、ここで私の最初の質問があります。
どのように私は変数のメモリサイズを知ることができます x ?
もうひとつ、C/C++言語で
int z=1;
のために4バイト=32ビットが割り当てられていることになります。 z に割り当てられ、ビットは00...001(0が31個、1が1個)のように配置されます。
ここで、私の変数 x は巨大ですが、同じメモリ割り当てルールに従うかどうかはわかりません。
どのように解決するのですか?
使用方法
sys.getsizeof
を使って、オブジェクトのサイズをバイトで取得します。
>>> from sys import getsizeof
>>> a = 42
>>> getsizeof(a)
12
>>> a = 2**1000
>>> getsizeof(a)
146
>>>
オブジェクトのサイズとレイアウトは純粋に実装に依存することに注意してください。例えばCPythonはIronPythonと全く異なる内部データ構造を使うかもしれません。ですから、オブジェクトのサイズは実装によって異なるかもしれません。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Python構造体のインメモリサイズ
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pythonの辞書にあるスレッドセーフについて