Cython - 是什么让我的程序变慢了,如何加速?

问题描述 投票:0回答:1

我想加快我的Cython程序,但我添加的所有内容都出现了错误。有谁知道我可以做什么?

下面是代码。

cpdef char breaker(str a): 
       cdef list strings = list("abcčćdđefghijklmnoprsštuvzžqwxy1234567890ABCČĆDĐEFGHIJKLMNOPRSŠTUVZŽQWXY")
       cdef int i
       cdef int b = 0
       cdef str string1, string2, string3, string4, string5, string6, string7, string8
       cdef str password
       for i in range(len(strings)):
              string1 = strings[i]
              for i in range(len(strings)):
                     string2 = strings[i]
                     for i in range(len(strings)):
                            string3 = strings[i]
                            for i in range(len(strings)):
                                   string4 = strings[i]
                                   for i in range(len(strings)):
                                          string5 = strings[i]
                                          for i in range(len(strings)):
                                                 string6 = strings[i]
                                                 for i in range(len(strings)):
                                                        string7 = strings[i]
                                                        for i in range(len(strings)):
                                                               string8 = strings[i]
                                                               output = string1 + string2 +string3 + string4 + string5 + string6 + string7 + string8
                                                               if a == output:
                                                                      password = output
                                                                      quit()

                                                               if b >= 100000:
                                                                      b = 0
                                                                      print(output)

                                                               else:
                                                                      b += 1


       return password

print(output) 不是必需的行,请告诉我这是否会使程序变慢。下面是html文件的图片,显示了程序的哪些部分比较慢(黄线),哪些比较快(白线)。

https:/i.stack.imgur.comdLn88.png。

我是个新手,这个程序只是为了将来更大的项目做测试。谢谢你的建议

python cython
1个回答
1
投票

你正在粗暴地强迫72^8 = 722204136308736密码组合。它一定会花点时间的。

(另外,请不要在所有的嵌套循环中使用同一个迭代器 "i")

© www.soinside.com 2019 - 2024. All rights reserved.