我正在编写代码来查询在线API,这限制了我每10秒钟可以访问的次数。我想尽可能快地使我的代码,这意味着查询非常接近极限。保证循环需要至少t秒?
我想知道是否有任何方法可以保证for循环的迭代至少需要t秒。因此,例如,如果循环内的代码需要t秒,那么程序将等待t-n秒,然后再次迭代。
尽管目前我使用的是Julia,但我仍然接受C++,Python或Java的解决方案。另外,如果有其他语言比较容易,我总是乐于学习。
我正在编写代码来查询在线API,这限制了我每10秒钟可以访问的次数。我想尽可能快地使我的代码,这意味着查询非常接近极限。保证循环需要至少t秒?
我想知道是否有任何方法可以保证for循环的迭代至少需要t秒。因此,例如,如果循环内的代码需要t秒,那么程序将等待t-n秒,然后再次迭代。
尽管目前我使用的是Julia,但我仍然接受C++,Python或Java的解决方案。另外,如果有其他语言比较容易,我总是乐于学习。
许多语言有一个getTickCount()
,getFrequency()
和sleep(ms)
功能 - 你可以把它们串起来很容易为:
while (doMoreQueries)
{
startTick = getTickCount();
// send query, do other things
remainingMs = 10000 - (getTickCount() - startTick) * 1000/getFrequency();
sleep(remainingMs);
}
虽然我不熟悉的朱莉娅,在C++中,你可以看看使用一些功能chrono,与sleep function like this。
或者在朱莉娅...
while (some_condition)
start_time=time()
# do your stuff
sleep(max(0,10-(time()-start_time)))
end