【求助】这段代码怎么优化
计算sha1值的前n个数值多久才会重复,算到n=12就内存不够了。各位大侠,看看怎么搞?代码优化?还是另辟蹊径?
def passwd_set_test(passwd_len=int(8)):
passwd_set = set()
utc_sec = time.mktime(time.localtime())
print "now: ", utc_sec
while True:
sha1_passwd = hashlib.sha1()
sha1_passwd.update(str(int(utc_sec))+seed)
password = sha1_passwd.hexdigest()
password = password
if password in passwd_set:
break
else:
passwd_set.add(password)
utc_sec = utc_sec + 1
print "now: ", utc_sec
print "this one: ", password
return passwd_set
for x in range(6, 15):
passwd_set1 = passwd_set_test(x)
print "size: ", len(passwd_set1), "bits: ", x
试着把 sha1_passwd 放在 循环外面 初始化一下.
类似
sha1_passwd = None def passwd_set_test(passwd_len=int():
passwd_set = set()
utc_sec = time.mktime(time.localtime())
sha1_passwd = None
print "now: ", utc_sec
while True:
sha1_passwd = hashlib.sha1()
sha1_passwd.update(str(int(utc_sec))+seed)
password = sha1_passwd.hexdigest()
password = password
if password in passwd_set:
break
else:
passwd_set.add(password)
utc_sec = utc_sec + 1
del sha1_passwd
print "now: ", utc_sec
print "this one: ", password
return passwd_set加了del sha1_passwd后,sha1_passwd这部分内存应该会自动回收吧。感觉是passwd_set这个集合太大了。
页:
[1]