我正在編寫代碼來查詢在線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