通常当我有一个大的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 }
我想知道这是否会对性能造成太大影响(先验),如果有更聪明的替代方案就是这种情况.谢谢提前.
解决方法
也许你可以拆分大循环以便有时只检查条件,但我不知道这是否真的可以节省时间,这更多地取决于你的“其他东西”.
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)); }