Python-来自sys.getsizeof()的int,float等的大小

时间:2017-05-12 06:18:59

标签: python arrays size

我试图将Python中数据类型的大小与sys.getsizeof()进行比较。但是,对于整数和浮点数,它返回相同的 - 24(不是通常的4或8字节)。此外,使用带有4个整数元素的array.array()声明的数组的大小将返回72(而不是96)。并且有4个浮动元件-88(不是96)。发生了什么事?

.config(function($stateProvider, $urlRouterProvider){
  $stateProvider
  .state('login',{
    url:'/login',
    templateUrl:'templates/login.html',
    controller:'LoginController'
  })
  .state('tabs',{
    url:'/tabs',
    comtroller:'TabController',
    templateUrl:'templates/tabs.html',
    abstract:true
  })

1 个答案:

答案 0 :(得分:0)

函数sys.getsizeof()返回 Python对象所占的空间量。 在底层系统的内存中表示该对象中的数据所需的空间量。

Python对象有开销来覆盖引用计数(用于垃圾收集)和其他与实现相关的东西。此外,array不是floatint s的天真序列;数据结构有很多东西,可以跟踪数据类型,元素数量等等。例如,'d''i'就在那里。

为了得到我认为你期待的答案,试试

print (arr1.itemsize * len(arr1))
print (arr2.itemsize * len(arr2))