我在循环内调用了一个计算量大的函数:
for( int j = 0; j < Max; ++j ) {
// ...
processQueuedEvents(); // Computationally expensive call
// ...
}
但是,我不需要在每个循环中都运行昂贵的函数,因此我想定期调用它:
for( int j = 0; j < Max; ++j ) {
// ...
if ( /* The condition I'm talking about */ )
processQueuedEvents(); // Computationally expensive call
// ...
}
在这一点上,我需要为我的定期电话制定适当的条件。条件应该与Max
相关,我的意思是,如果Max
是更大,则昂贵的通话是较少-频繁,并且如果{{1} }是更小,通话昂贵的是更多-频繁。
有人有任何建议或提示吗?由于某些原因,我很难提出适当的条件。
答案 0 :(得分:2)
您没有提供有关要使用的增量功能的足够详细信息。如果您正在考虑一个班轮,您可以通过以下方式以10为因数进行推理:
0 <= Max < 10
-每次循环执行都会调用昂贵的调用。10 <= Max < 100
-每次10-th (j % 10 == 0)
循环执行都会调用昂贵的调用。100 <= Max < 1000
-每次100-th (j % 100 == 0)
循环执行都会调用昂贵的调用。以此类推。