繁体   English   中英

如何在代码中提高字符串生成的速度?

[英]How can I increase the speed of string generating in my code?

通过搜索,我可以找到以下解决方案来生成给定字符串的所有组合并计算它们的哈希值。 现在我可以在21秒内生成10000000个字符串和哈希值。 但是,我需要一种更快的方法。

import itertools
import hashlib
import time

def pow():
    global cnt
    authdata = "eTSlASZYlLNgKJuYeIQvGVbiAcLEEOVgAQPzSrtCOIwQxQHyFHcfjgRQJBJDlojx";
    l = 'abcdefghij'
    result = itertools.product(*([l] * 7))
    for each in result:
        cnt = cnt + 1
        suffix = ''.join(each)
        authdataSuffix = authdata + suffix
        hashValue = hashlib.sha1(authdataSuffix.encode('utf-8')).hexdigest()
        if  hashValue.startswith("0"*8):    
            print (hashValue)


cnt = 0
start = time.time() 
pow()
end = time.time()
print(cnt)
print(end - start)

除了转换到像C++这样的更快的语言之外,多线程或多处理是加速程序的最佳方式

一些改进的评论:

  • 不要使用global变量
  • 使用timeit进行有意义的测量
  • 使用Python 3
  • 我认为你可以使用itertools permutations ,它可以更快地生成,但也可以产生更少的数据
  • 让一切成为可能

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM