gpt4 book ai didi

algorithm - 用有限的信息计算总的批量上传传输百分比

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:51:14 24 4
gpt4 key购买 nike

我有一个按文件上传到服务器文件并显示文件上传进度进度条的系统,然后在第二个进度条下方我想指示所有排队上传的文件的批处理完成百分比。

我能算出的信息和算法有:

已发送的字节数/要发送的总字节数 = 第一个进度条(例如 512KB of 1024KB (50%))

这很好用。但是,假设我还有另外两个文件要上传,但两个文件的大小都是未知的(因为这只有在文件即将开始上传时才知道,此时它被压缩并确定文件大小)我将如何制作我的第三个进度条?

我不认为这是可能的,因为我需要“发送的总字节数”/“发送的总字节数”,以在更大范围内复制我的第一个进度条的逻辑,但是我确实得到了一个版本:“我们正在处理的当前文件数”/“要发送的文件总数”通过批处理返回百分比,但显然不会增量更新并且非常粗糙。

因此,在进一步思考后,我认为如果我可以将当​​前文件 % 与该算法结合起来,我或许可以获得批处理当前点的正确进度百分比。

我尝试了这个算法,但遗憾的是没有这样的用处(对任何数学头脑感到抱歉,它为什么不起作用可能很明显)

("当前文件编号"/"要发送的文件总数") * ("Bytes Sent"/"Total Bytes To Send")

例如,我认为在使用此示例进行测试时我是在正确的轨道上:2/3(第 3 个文件的第 2 个)= 66%(到目前为止这是正确的)但是当我添加 * 0.20(仅表示 20第二个文件的百分比已上传)我们回到了 13%。我需要的只是33%多一点!我确实在 0.80 和 (2/3 * (2/3 * 0.2)) 处尝试了倒数

是否可以在不知道要批量上传的完整字节的情况下完成此操作?

求助!谢谢!

最佳答案

如果您不知道其他排队文件有多大,则无法准确显示与所需时间相关且成比例的百分比值。

我想到了一些解决方法:

  • 一种看似您知道但实际上是在欺骗用户的方法是假设所有排队的文件的大小与正在处理的文件或到目前为止处理的文件的平均值相同。基于此,如果所有文件的大小确实相同,则进度条将显示“真相”,如果大小差异很大,则进度条将显示“真相”。

  • 另一种方法是让您的第二个进度条不显示传输的字节百分比,而是显示文件的百分比。因此,如果您有 4 个文件,则该栏将从 0% 跳到 25% 到 50% 到 75% 到 100%。它不会准确反射(reflect)花费的时间,但至少你不会说谎。

  • 您可以使用类似 Microsoft 的方法做得更糟:让进度条的增长在接近 100% 时逐渐变慢,这样它就永远不会真正到达终点。用户看到的只是不断接近“几乎完成”的值。这样的显示看起来很酷,但实际上给用户提供的信息最少。

关于algorithm - 用有限的信息计算总的批量上传传输百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com