Форум сайта python.su
Я новичок. Помогите разобраться
Следующий код выдает ошибку memory error
x = [] for i in range(1000000000): x.append(i)
Офлайн
> Следующий код выдает ошибку memory error … Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?
Я для прикола запустил у себя этот код, он отработал нормально и сожрал почти 40 ГиБ памяти. Выводы делай сам…
Отредактировано Rodegast (Ноя. 8, 2019 23:05:05)
Офлайн
RodegastУ Вас 64гб RAM?
> Следующий код выдает ошибку memory error … Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?Я для прикола запустил у себя этот код, он отработал нормально и сожрал почти 40 ГиБ памяти. Выводы делай сам…
Офлайн
ynosЗаполнение памяти зависит, как ни странно, от того чем вы ее заполняете. Для списка из n элементов нужно n * <размер элемента> байтов. Для разных ОС, разных архитектур с разным количеством RAM и разных данных колличество элементов будет отличаться.(возможно даже что эта цифра будет разной для разных версий пайтона), и все упираеться в то сколько памяти сможет скушать ваш пайтон.
Сколько элементов можно сохранить в список и от чего зависит заполнение памяти?
x = [0] for i in range(1000000000): x.append(x[0])
if (new_allocated > (size_t)PY_SSIZE_T_MAX / sizeof(PyObject *)) {
PyErr_NoMemory();
[code python][/code]
Отредактировано PEHDOM (Ноя. 8, 2019 23:53:48)
Офлайн
> У Вас 64гб RAM?
Да.
Отредактировано Rodegast (Ноя. 9, 2019 11:55:52)
Офлайн