gpt4 book ai didi

python - 以编程方式设置文件写入速率

转载 作者:太空宇宙 更新时间:2023-11-04 11:22:28 25 4
gpt4 key购买 nike

我希望能够轻松设置基准测试程序的文件写入速率。这是我用来测试另一个系统的 python 程序。我希望能够控制文件创建的速度。我想到的一种方法是使用一个函数,该函数的参数是要创建的文件数。这可以在一个循环中调用,该循环跟踪时钟并且每秒只调用该函数。这将满足每秒创建一定数量的文件的要求。这样做的问题是可能会有大量死时间(毫秒,但仍然如此)。我想要持续加载。

最佳答案

您必须以某种方式跟踪实际执行文件 I/O 调用所花费的时间,并调整操作之间的休眠时间。调整需要持续进行,因为 sleep 和 IO 调用可能需要不同的时间,具体取决于系统负载。

如果你想平均每秒执行 N 次操作,你可以运行几秒(或更长时间)的循环,并在每一轮之后查看你是否运行得太快或太慢,并调整 sleep()基于此向上或向下的每个操作之间完成的时间。如果您跑得太快了,请增加 sleep 时间,如果您跑得有点太快,请减少 sleep 时间。

import time
# target rate: 100 ops / 1 second
target = 100.0
round_time = 1.0
# at first, assume the writes are immediate
sleepTime = round_time/target

ops = 0
t_start = time.time()

while True:
#doYourIOoperationHere()
ops += 1
time.sleep(sleepTime)

# adjust sleep time periodically
if ops == target:
t_end = time.time()
elapsed = t_end - t_start
difference = round_time - elapsed
# print out the vars here to debug adjustment
print "%d ops done, elapsed %.3f, difference %.3f" % (ops, elapsed, difference)
# increase or decrease the sleep time, approach the target time slowly
sleepTime += difference/target/2
t_start = time.time()
ops = 0

或者类似的东西(未经测试的简单代码)。这可能不适用于非常高的 IO 速率或系统负载,您可能必须在每次 sleep 调用时开始执行多个写入操作。此外,可能需要超过 1 秒的平均时间。

关于python - 以编程方式设置文件写入速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17286012/

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