2009-11-24 19 views
15

द्वारा ली गई बाइट्स की संख्या कैसे खोजें, वैसे भी मैं जान सकता हूं कि पाइथन में विशेष चर द्वारा कितने बाइट्स लिया गया है। उदा; कहते हैं की सुविधा देता है मेरे पास हैपायथन वैरिएबल

int = 12 
print (type(int)) 

यह

<class 'int'> 

प्रिंट होगा लेकिन मुझे पता है कि कितने बाइट्स यह स्मृति पर ले लिया है चाहते थे? क्या यह संभव है?

उत्तर

30

आप जो कार्यक्षमता here (sys.getsizeof - पायथन 2.6 और ऊपर) के लिए देख रहे कार्यक्षमता को पा सकते हैं।

इसके अलावा: int अंतर्निहित छाया न करें!

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

मैं अपने पूरे वस्तु के आकार लौटने लगता है, के रूप में मैं जानता हूँ पूर्णांक 4 बाइट ले यह वास्तव में, मींट के आकार दे रही है यह 14 लौटा रहा है के रूप में दूर है, मैं बस केवल "INT" के आकार का पता कर सकते हैं – itsaboutcode

+2

दस्तावेज़ों से: 'getizeof' ऑब्जेक्ट की' __sizeof__' विधि को कॉल करता है और यदि कचरा कलेक्टर द्वारा ऑब्जेक्ट प्रबंधित किया जाता है तो अतिरिक्त कचरा कलेक्टर ओवरहेड जोड़ता है। –

+7

itsaboutcode: क्या आप पाइथन क्षेत्र छोड़ना चाहते हैं? आप वास्तव में क्या सवाल पूछना चाहते हैं? यदि आप उत्तर के रूप में 4 चाहते हैं, तो 'def sizeof (o): वापसी 4'। – u0b34a0f6ae

5

पायथन> = 2.6 में आप sys.getsizeof का उपयोग कर सकते हैं।

2

आप Pympler पर भी विशेष रूप से asizeof मॉड्यूल देख सकते हैं, जो sys.getsizeof के विपरीत Python> = 2.2 के साथ काम करता है।

8

अगर आप पूर्णांक के आकार में जानना चाहते हैं, तो आप struct

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

उपयोग कर सकते हैं अन्यथा, के रूप में दूसरों पहले ही बताया, getsizeof का उपयोग (2.6)। recipe भी आप कोशिश कर सकते हैं।

2

अजगर कमांड प्रॉम्प्ट पर, आप समारोह

$ import python 
    $ import ctypes 
    $ ctypes.sizeof(ctypes.c_int) 

के आकार का उपयोग करें और से https://docs.python.org/2/library/ctypes.html

2

उस पर और अधिक पढ़ Numpy डेटा आकार को नियंत्रित करने के लिए बुनियादी सुविधाओं के प्रदान करता है सकते हैं। यहाँ उदाहरण (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)) 
संबंधित मुद्दे