Python Object Data Wielkość
Jeśli dane są przechowywane w jakiś obiekt Pythona, będzie trochę więcej danych dołączone do rzeczywistych danych w pamięci.
Można to łatwo sprawdzić.

Warto zwrócić uwagę, jak na początku, narzut obiektu Pythona jest istotna dla małych danych, ale szybko staje się nieistotna.
Oto kod ipython wykorzystywane do generowania działkę
%matplotlib inline
import random
import sys
import array
import matplotlib.pyplot as plt
max_doubles = 10000
raw_size = []
array_size = []
string_size = []
list_size = []
set_size = []
tuple_size = []
size_range = range(max_doubles)
# test double size
for n in size_range:
double_array = array.array('d', [random.random() for _ in xrange(n)])
double_string = double_array.tostring()
double_list = double_array.tolist()
double_set = set(double_list)
double_tuple = tuple(double_list)
raw_size.append(double_array.buffer_info()[1] * double_array.itemsize)
array_size.append(sys.getsizeof(double_array))
string_size.append(sys.getsizeof(double_string))
list_size.append(sys.getsizeof(double_list))
set_size.append(sys.getsizeof(double_set))
tuple_size.append(sys.getsizeof(double_tuple))
# display
plt.figure(figsize=(10,8))
plt.title('The size of data in various forms', fontsize=20)
plt.xlabel('Data Size (double, 8 bytes)', fontsize=15)
plt.ylabel('Memory Size (bytes)', fontsize=15)
plt.loglog(
size_range, raw_size,
size_range, array_size,
size_range, string_size,
size_range, list_size,
size_range, set_size,
size_range, tuple_size
)
plt.legend(['Raw (Disk)', 'Array', 'String', 'List', 'Set', 'Tuple'], fontsize=15, loc='best')
Więcej pamięci RAM! Między innymi istnieje lista narzutów. Jeśli się martwisz, a) dowiedz się, i b) rozważ jedynie przechowywanie nieprzetworzonych danych w pamięci i rozpakowywanie ich w locie (to zależy od tego, co robisz z tym). – Ryan
Powiązane: http: // stackoverflow.com/a/994010/846892 –
Moja pierwsza myśl jest taka, że upłynie trochę czasu, zanim użytkownik zaczeka, aż wszystkie dane zostaną załadowane do pamięci RAM. –