【问题标题】:Calculate how much time a method WILL take to finish? python计算完成一个方法需要多长时间? Python
【发布时间】:2020-04-25 19:24:04
【问题描述】:

我知道这不是一个具体的问题,但可以说我有一个功能:

def compare(firstEntry, secondEntry):
  for element in firstEntry:
      for element2 in secondEntry:
            if(element<element2): 
                secondEntry.append(element)

这只是一个示例函数,但我想你明白了我的问题。根据这两个条目的大小,执行时间可能会有很大差异。那么我可以做些什么来预先计算执行时间并告诉用户他可能必须等待例如10 秒、30 秒、2 分钟……?

我在这个平台上找不到这样的问题。 我将不胜感激任何帮助。谢谢:-)

【问题讨论】:

    标签: python performance time


    【解决方案1】:

    如果您不想在此任务上花费太多时间,我会这样做。

    首先计算T,如果firstEntrysecondEntry 是每个包含一个元素的列表,则运行compare(firstEntry,secondEntry) 需要多少时间。假设T = 0.1 秒。然后我会打印这样的东西。

    T = 0.1
    estimated = T * len(firstEntry) * len(secondEntry)
    print("This might take %f seconds"%estimated)
    

    我将列表的长度相乘,因为您有一个嵌套循环。

    【讨论】:

    • 谢谢。我会在接下来的几天内实现它,如果可行的话,我会接受你的回答
    【解决方案2】:

    首先,不要直接编辑其中一个参数,这是不好的做法。改为返回一个新变量,比如finalEntry

    假设两个列表的长度相等,这可以写得更快,在这种情况下你不需要提前告诉用户执行时间。

    def compare(firstEntry, secondEntry):
        finalEntry = secondEntry
        for i in range(len(firstEntry)):
            if firstEntry[i] < secondEntry[i]:
                finalEntry.append(firstEntry[i])
    

    【讨论】:

    • 正如我所提到的,我的函数只是一个示例。实际上我的代码看起来完全不同,而且比这个要困难得多。我有一个文件阅读器,它接受多个文件并遍历每个文件的每一行并在这些行上应用其他功能。当用户上传几个大文件时,可能需要几分钟以上的时间。所以这就是我想粗略计算执行时间的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2011-03-30
    • 2013-07-18
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多