Форум сайта python.su
Доброго времени суток
Может кто-нибудь поможет
Есть скрипт, в цикле которого выполняются вычисления на примере такого:
for i in file: hash_object = hashlib.sha256(i) hex_dig = hash_object.hexdigest() open('text.txt', 'a').write(hex_dig)
Отредактировано wallet (Фев. 21, 2016 11:29:14)
Офлайн
49
Есть. Пишите группами а не по одному объекту…
Отредактировано 4kpt_IV (Фев. 21, 2016 11:34:14)
Офлайн
88
Открывать файл за пределами цикла?
Офлайн
49
Shaman
Кстати, вариант. Не заметил.
Офлайн
221
4kpt_IVЯ бы назвал это не вариантом, а в принципе правильным решением.
wallet
Расспараллеливание вычислений за счет multiprocessing модуля, плюс в файл записывать также в отдельном потоке или процессе
Офлайн
4kpt_IV
Есть. Пишите группами а не по одному объекту…

Shaman
Открывать файл за пределами цикла?

Офлайн
88
Тогда нужно разбираться куда вы записываете, что за система, как настроена и как замеряете скорость.
Офлайн
253
wallet
то скорость вычислений составляет 1000 итераций в секунду
import time t0=time.clock() object = " "*256 f=open('text.txt', 'a') for i in range(1000): f.write(object) f.close() t1=time.clock() print(t1-t0) >>> 0.00273258325833
import time t0=time.clock() object = " "*256 for i in range(1000): f=open('text.txt', 'a') f.write(object) # f.close() t1=time.clock() print(t1-t0) >>> 0.081321350135
Офлайн
В общем всем спасибо, просмотрел ещё раз свой код, не стал его сюда полностью вставлять, т.к. на несколько страниц с кучей модулей, а приведеный выше чисто для примера и если его отдельно рассматривать то да, если вынести из цикла открытие файла, действительно в разы быстрее
в моём же случае открытие файла вне цикла практически не играет роли в увеличении скорости, будем смотреть дальше, ещё раз всем спасибо 
Офлайн
49
wallet
Вообще Вам нужно посмотреть в сторону какого-нибудь профайлера. Очень хороший доклад был на конференции в Харькове. Ссылку прилагаю.
Офлайн