В 64-битной сборке Python с sys.maxsize
9223372036854775807 интерпретатор, тем не менее, выдает MemoryError , если я выделю строку из более чем INT_MAX - 512 МБ символов:
$ python3
#Python 3.6.6 (default, Jul 19 2018, 14:25:17)
[GCC 8.1.1 20180712 (Red Hat 8.1.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> s = "*" * 2684354560
>>> s = "*" * 2684354561
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
(ограничение одинаково для байтов , тип элемента которых определенно равен 8 битам.) Существует много свободной памяти и подкачки, поэтому я уверен, что система не выходит за пределы физических ограничений..
Что здесь происходит и как я могу увеличить этот предел?