Найти - Пользователи
Полная версия: ограничение встроено в Питон или из-за железа?
Начало » Python для новичков » ограничение встроено в Питон или из-за железа?
1 2 3
pytol
k='ab'
str=[p0+p1+p2+p3+...
for p0 in k for p1 in k for p2 in k... ]

print str[5]
это срабатывает на моем компе только до р23
далее пишет ошибку памяти ,
файл подкачки на XP доходит до 1,75Гб
посадил программу на сервер 2003 с 4ГБ ОЗУ - сбой там же на р23
запустил программу на 2- процессорном XEON под FreeBSD 6.2 - там же на p23 ошибка памяти…

вопрос Питон глубже не дает создавать набор строк или это “железо”?
что делать чтобы этот вопрос выяснить?

Спасибо
Dimka665
жестоко.
какая версия Питона, и что требуется сделать?
pytol
здесь генерится набор строк из букв a и b,
в моей задаче желательно иметь набор строк (минимум 4,5 млрд штук), около 10-30 тыс получается легко и питон с ними нормально работает, вопрос сколько по максимуму можно сгенерить строк в списке? Лобовая попытка остановилась на 2 в 23 степени…
есть ли дргуие средства в питон, помимо декартова произведения использованного мной в коде? С питоном только знакомлюсь, но где то читал что с целмыми числами ограничений в питоне нет, а вот со строками?
и отсается вопрос - какими инструментами проследить (какая нубдь трассировка..) в чем причина обвала попытки построить полный список…

есть такой вариант - генерить не всеь список а скажем требующиеся срезы типа str - есть ли в питон такая возможность?
pytol
версии Питона 2.5 и на FreeBSD - 2.4
slivlen
pytol
отсается вопрос - какими инструментами проследить
Для начала попробуй отследить системными средствами объем занятой/свободной оперативки и свопа перед моментом ошибки.
Ferroman
Я бы предложил пересмотреть алгоритм.
Lexander
Ferroman
Я бы предложил пересмотреть алгоритм.
+1
А если нужно работаьт с таким объемом данных, то я бы посмотрел в сторону базы данных.
pytol
сейчас в книге М.Саммерфилд “Программирвоание на Питон3” нашел про генераторы, полезные при больших списках - пытаюсь таким генератором (это просто вложенные циклы) получать типа среза от nnn до mmm-номера от большого списка без генерации самого большого списка… вопросы остаются

Спасибо за внимание!
pytol
Ferroman
я наверное это и пытаюсь сделать!
Ferroman
я наверное это и пытаюсь сделать!
Где? Вопрос был
Питон глубже не дает создавать набор строк или это “железо”?
и
сколько по максимуму можно сгенерить строк в списке?
Если вам надо хранить столько строк, то держать их в оперативной памяти, мммм, не лучшее решение.
Используйте внешние носители.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB