2009-11-24 5 views
15

어쨌든 파이썬에서 특정 변수에 의해 얼마나 많은 바이트가 찍혔는지 알 수 있습니까? 예 : 이파이썬 변수에 의해 취해진 바이트 수를 찾는 방법

<class 'int'> 

를 인쇄합니다 내가

int = 12 
print (type(int)) 

이 있다고하지만 난이 메모리에 취한 얼마나 많은 바이트 알고 싶어 할 수 있습니다? 그것은 가능한가?

답변

30

here (sys.getsizeof - Python 2.6 이상)에서 찾고있는 기능을 찾을 수 있습니다.

기타 : int 내장!

import sys 
myint = 12 
print sys.getsizeof(myint) 
+1

실제로는 intint의 크기가 14를 반환하고 있습니다. int가 4 바이트를 차지한다는 것을 알기 때문에 전체 객체의 크기를 반환한다고 생각합니다. 단지 "INT" – itsaboutcode

+2

docs :'getsizeof'는 객체의'__sizeof__' 메소드를 호출하고 객체가 가비지 컬렉터에 의해 관리되는 경우 추가 가비지 콜렉터 오버 헤드를 추가합니다. –

+7

itsaboutcode : 파이썬 영역을 떠나시겠습니까? 어떤 질문을 * 정말로 대답하고 싶습니까? 4를 답으로 원한다면,'def sizeof (o) : return 4'. – u0b34a0f6ae

5

파이썬> = 2.6에서는 sys.getsizeof을 사용할 수 있습니다.

2

Pympler, 특히 asizeof 모듈을 살펴볼 수도 있습니다. 이는 sys.getsizeof과 달리 Python> = 2.2에서 작동합니다. 당신은 INT의 크기를 알고 싶다면

8

, 당신은 다른 사람이 이미 지적 그렇지 않으면, getsizeof (2.6)를 사용하여 구조체를

>>> import struct 
>>> struct.calcsize("i") 
4 

를 사용할 수 있습니다. 시도 할 수있는 recipe도 있습니다. 파이썬 명령 프롬프트에

2

에서에 대한 자세한 내용을보실 수 있습니다. 다음은 예 (py3) :

import numpy as np 
x = np.float32(0) 
print(x.nbytes) # 4 
a = np.zeros((15, 15), np.int64) 
print(a.nbytes) # 15 * 15 * 8 = 1800 

예를 들어, pyopengl와 그래픽 카드에 데이터를 전송하려고 할 때 이것은 매우 유용합니다.

0

파이썬 3에서는 sys.getsizeof()를 사용할 수 있습니다.

import sys 
myint = 12 
print(sys.getsizeof(myint)) 
관련 문제