Будучи новичком в программировании, я играл с Python с помощью этого сценария:64 бит Python причины замораживать
import itertools
Lists=list(itertools.permutations(['a','b','c','d','e','f','g','h','i','j','k']))
print(len(Lists))
На 32-битной Python это вызовет ошибку переполнения памяти. Однако, пытаясь на 64-битном Python и наблюдая за Диспетчером задач, Python использует 4 ГБ памяти (у меня 8 ГБ ОЗУ), тогда мой компьютер зависает, и я должен перезапустить его.
Это нормальное поведение? Как я могу исправить это или ограничить доступ к памяти Python?
Также, если бы я преобразовал что-то подобное в .exe-файл (использовал этот скрипт для тестирования чего-то еще), он бы заморозил другие компьютеры?
Благодарю вас, ваш ответ имеет большой смысл. Не следует ли сначала называть python ошибку переполнения, а не замораживать мой компьютер? Как и вышеприведенный парень, хотя он действительно не ответил на многое из того, что было задано: P спасибо в любом случае – NightShade
На Python 3.5 я получаю использование памяти в размере 5.786255888 ГБ с использованием 'getsizeof (permutations) + sum (getsizeof (p) for p в перестановках) ' –
Спасибо за предложения, я использую Windows 10, поэтому не могу использовать 'ulimit', и когда я пытаюсь импортировать ресурс, я получаю модуль не найденной ошибкой -« Нет модуля с именем «resource». » Возможно, я должен предотвратить создание массивов определенного размера с помощью этой функции? – NightShade