Мне порекомендовали использовать gmpy для эффективного вычисления больших чисел. До этого я использовал только python, и мой скрипт работал день или два, а затем закончилась память (не уверен, как это произошло, потому что использование памяти моей программой должно быть постоянным... может быть, утечка памяти?)
В любом случае, я продолжаю получать эту странную ошибку после запуска моей программы в течение нескольких секунд:
mp_allocate< 545275904->545275904 >
Fatal Python error: mp_allocate failure
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Кроме того, python падает, и Windows 7 выдает мне общий python.exe перестал работать
диалог.
Этого не происходило при использовании стандартных целых чисел python. Теперь, когда я перешел на gmpy, я получаю эту ошибку уже через несколько секунд после запуска моего скрипта. Я думал, что gmpy специализируется на работе с арифметикой больших чисел.
Для справки, вот пример программы, которая выдает ошибку:
import gmpy2
p = gmpy2.xmpz(3000000000)
s = gmpy2.xmpz(2)
M = s**p
for x in range(p):
s = (s * s) % M
У меня 10 гигов оперативной памяти, и без gmpy этот скрипт работал несколько дней, не исчерпав памяти (все еще не уверен, как это произошло, учитывая, что s
никогда не становится больше...).
У кого-нибудь есть идеи?
EDIT: Забыл упомянуть, что я использую Python 3.2