【问题标题】:How do programs estimate how long a process will take to complete?程序如何估计完成一个过程需要多长时间?
【发布时间】:2019-12-20 15:38:51
【问题描述】:

在某些加载栏中会有类似“剩余 2 分钟”的信息。程序员是否计算该过程在他们的计算机上花费的时间并以某种方式使用该值?还是程序自己计算?还是其他方法?

【问题讨论】:

    标签: time loading calculation


    【解决方案1】:

    这个计算实际上是在内部完成的,因为执行或下载某个程序需要多长时间是基于互联网速度、RAM、处理器速度等,因此很难根据程序员的电脑。通常,如何计算这是基于与文件大小相比已经下载了多少程序,并考虑了下载这么多数据需要多长时间。从那里,程序会根据在该时间点之前的运行速度推断完成下载需要多长时间。

    【讨论】:

      【解决方案2】:

      那些“剩余 x 分钟”界面元素,(理想情况下)指示完成某项任务需要多少时间,只是根据该任务到目前为止花费了多长时间以及该任务完成了多少工作的简单预测已经完成了。

      例如,假设我有一个应用程序会将一批图像上传到服务器(为简单起见,所有图像的大小都相同)。以下是指示剩余时间的代码如何工作的一般概念:

      在开始之前,我们将当前时间分配给一个变量。此外,此时剩余时间指示器不可见。然后,在 for... 循环中:

      for (var i = 0; i < batchOfImages.length; i++)
      {
      
      1. 我们上传图片
      2. 图片上传后,我们得到当前时间和开始时间的差值。这是迄今为止花费在此任务上的总时间。
      3. 然后,我们将花费的总时间除以目前上传的图片总数i + 1,得到迄今为止上传每张图片平均花费的时间
      4. 然后,我们将每张图片的平均上传时间乘以剩余要上传的图片数量,得出上传剩余图片所需的可能时间
      5. 我们更新指示器上的文本以显示剩余时间,并确保指示器可见
      }
      

      【讨论】:

        猜你喜欢
        • 2016-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多