通常当我有一个大的for循环时,我把消息告诉我程序的哪个部分,例如:
for(i = 0; i < large_n; i++) {
if( i % (large_n)/1000 == 0) {
printf("We are at %ld \n", i);
}
// Do some other stuff
}
Run Code Online (Sandbox Code Playgroud)
我想知道这是否会对性能造成太大的伤害(先验),如果有更聪明的替代方案就是这种情况.谢谢提前.
也许你可以拆分大循环以便有时只检查条件,但我不知道这是否真的可以节省时间,这更多地取决于你的"其他东西".
int T = ...; // times to check the condition, make sure large_n % T == 0
for(int t = 0; t < T; ++t)
{
for(int i = large_n/T * t; i < large_n/T * (t+1); ++i)
{
// other stuff
}
printf("We are at %ld \n", large_n/T * (t+1));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |