好的,所以我有一些 C 代码来执行数学运算,这几乎可以花费任何时间(当然取决于提供给它的操作数)。我想知道是否有一种方法可以注册某种方法,该方法每n秒调用一次,可以分析操作的状态,即它当前处于什么迭代,可能使用硬件定时器中断或其他什么?
我问这个的原因是因为我知道实现它的常用方法是跟踪变量中的当前迭代;比如说,一个整数被调用progress
并且在代码中有一个这样的 IF 语句:
if ((progress % 10000) == 0)
printf("Currently at iteration %d\n", progress);
但我相信一个 mod 操作需要相对较长的时间来执行,所以从优化的角度来看,将它放在一个循环中运行很多次的想法让我害怕。
所以我觉得有一种外部方式来发出进度打印信号是很好和有效的。有没有什么很好的方法来执行这个,或者简单的“mod check”是最好的(就优化而言)?