我们如何获得python int占用的字节数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们如何获得python int占用的字节数?相关的知识,希望对你有一定的参考价值。

我不是在寻找一个用int表示的最大值的恒定记录;我希望找出int可以占用的最大内存量。请考虑以下代码:

import sys

def print_and_execute(*args):
    for s in args:
        print(s, end = " == ")
        r = eval(s)
        print(r)
    return

print_and_execute("type(5) ")     
print_and_execute("sys.getsizeof(5)")    
i = int()    
print_and_execute("i")    
print_and_execute("sys.getsizeof(i)")    
i = 2937    
print_and_execute("i")    
print_and_execute("sys.getsizeof(i)")
print_and_execute("sys.maxsize")
print_and_execute("sys.getsizeof(sys.maxsize)")

对于我的特定机器,输出是:

type(5)  == <class 'int'>
sys.getsizeof(5) == 28
i == 0
sys.getsizeof(i) == 24
i == 2937
sys.getsizeof(i) == 28
sys.maxsize == 9223372036854775807
sys.getsizeof(sys.maxsize) == 36

显然,一些ints是24字节长,其他是28,还有一些使用36.持有任何大小的int需要多少字节?

答案

保持任何大小int需要多少字节?

尽可能多的。 ints的大小没有限制,它们具有their documentation状态的任意大小。*

sys.maxsize不代表int物体的最大尺寸。它是Py_ssize_t的最大值(在CPython中)用于保存索引值。

例如,只需创建一个比int更大的maxsize

>>> sys.getsizeof(sys.maxsize * sys.maxsize)
44

因此,通过使用int,您可以获得给定getsizeof的字节数。

*最终,由可用内存限制。

以上是关于我们如何获得python int占用的字节数?的主要内容,如果未能解决你的问题,请参考以下文章

64位操作系统下,关于int和long占用字节数同为4问题

java 常用类型占用字节数

Java基本类型占用字节数(或 bit数)

计算机基础

基本数据类型占用的字节数

java中的变量各占得字节数